Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:90143 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 87511 invoked from network); 5 Jan 2016 19:55:52 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 5 Jan 2016 19:55:52 -0000 Authentication-Results: pb1.pair.com header.from=php@golemon.com; sender-id=softfail Authentication-Results: pb1.pair.com smtp.mail=php@golemon.com; spf=softfail; sender-id=softfail Received-SPF: softfail (pb1.pair.com: domain golemon.com does not designate 209.85.215.42 as permitted sender) X-PHP-List-Original-Sender: php@golemon.com X-Host-Fingerprint: 209.85.215.42 mail-lf0-f42.google.com Received: from [209.85.215.42] ([209.85.215.42:34360] helo=mail-lf0-f42.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id DA/C4-12097-7CF1C865 for ; Tue, 05 Jan 2016 14:55:51 -0500 Received: by mail-lf0-f42.google.com with SMTP id y184so300608084lfc.1 for ; Tue, 05 Jan 2016 11:55:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=golemon-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=WCw72mNR5w/7FFZpEVgLpr3SAT1UFSAC/L2XAMk3C68=; b=2KYkVDhP7voiwMEjVol0HG+ja68ihrQN2LYyR6jVQeww/5fcZLTXzD1W46C+eZwDo7 VCc0278NAyHiGO6mpOiMTn44jR75KNxNYqMA6PMVEINaJZhzB5Y1a1sZckBUyo88Fzes SQ/ajrMkszrLs1kTSWifEO3NQD4eZnO5Er/64dpV5i5loFa+4b+6eO0KEZbV92/q4zxd AjfxnTKqA2y1CRX7qdrTg9bmjcStRJHSHD97oHjvGRID6wf0S5jECZKbBWOTRaoeoDoB +sXwVaIE1/QllEsCcU4XChDhhG7DXw9TbRAYh9a64kQcktIwGwcm8AOOCjquzwUPFE4H 68SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=WCw72mNR5w/7FFZpEVgLpr3SAT1UFSAC/L2XAMk3C68=; b=QiZ77Wi7hiaPvY4BcEyNVJjyjN5P3WbnW9jeQr2TvNVQ/AqFaj7WrUWnclbuexcf1D kqQLS9/k57bTGsEQ2VgIIke9DakyLImwwrpGl/TAl7gCM0jz/Y4KH+ifWzN4Q/O2UCt2 PBwZs91Vq5V7G9kxqPdgV+9o2f19OIQaZq5797ArYxvSo1S+sF0PwfCl77TAIXfaky8j +uf+FcluPz8TXWNL9CQ0yw8xvXE34P97h0JpoEjvAngquqtSQzYVG7D+N9KW55kPwaL3 KGuHEAAC+/UkKVwdPRtvJndU4M8zhZEvE/5nNtcEk+xLQ4dUiDZJQj8OU3Vj9jHQbtyj ouVQ== X-Gm-Message-State: ALoCoQmd7x6urfmUc5Lp4JeDraVBEgL0zjcQkRag07Ys8j0OE5srA34X2lC4FfBTB38lXS9iqU716blmpImboH/18SpWDKRyvw== MIME-Version: 1.0 X-Received: by 10.25.91.139 with SMTP id p133mr13629243lfb.108.1452023748401; Tue, 05 Jan 2016 11:55:48 -0800 (PST) Sender: php@golemon.com Received: by 10.112.37.44 with HTTP; Tue, 5 Jan 2016 11:55:48 -0800 (PST) X-Originating-IP: [2620:10d:c090:200::6485] In-Reply-To: <568C1C1C.7040109@gmail.com> References: <4F.0A.12097.24FFB865@pb1.pair.com> <568C1C1C.7040109@gmail.com> Date: Tue, 5 Jan 2016 11:55:48 -0800 X-Google-Sender-Auth: imHp8OhENBrBXGfq5dy-NAxwS-Q Message-ID: To: Rowan Collins Cc: PHP internals Content-Type: text/plain; charset=UTF-8 Subject: Re: [PHP-DEV] Deprecation of the Error Control Operator (@ symbol) From: pollita@php.net (Sara Golemon) On Tue, Jan 5, 2016 at 11:40 AM, Rowan Collins wrote: >> @ changes the error_reporting() level for that particular call, so those >> custom error handler won't throw exceptions for the suppressed errors but >> when you remove/nop @ their code would throwing stuff left and right. > > > I'm lost - how does this validate the claim that building scream mode into > core would lead to problems? We already have an ini setting which can change > the error_reporting level, so any error handler relying on that is *already* > subject to different behaviour in different environments. Any codebase which > wants to ignore the settings of the environment would surely already omit > that boilerplate, and thus be unaffected by the presence or functionality of > the @ operator. > Because no matter how high your error_reporting is set (globally, per-dir, or ini-set) the @ suppression operator temporarily resets it to zero. In psuedo-code the following two blocks are equivalent: @foo(); if (ini_get('scream')) { $old_reporting = error_reporting(0); } foo(); if (ini_get('scream')) { error_reporting($old_reporting); } So the argument being made is that being able to disable @ suppression means ignoring whatever value the developer/admin has set for error_reporting. -Sara (not taking a stand on whether that's a compelling argument, just clarifying it)