ID: 50729 Updated by: ras...@php.net Reported By: keithdavis at solidtechservice dot com Status: Bogus Bug Type: Scripting Engine problem Operating System: Windows 7 64 Bit PHP Version: 5.3.1 New Comment:
Just check it: if(error_reporting()==0) ... I'm confused about your confusion here. Previous Comments: ------------------------------------------------------------------------ [2010-01-12 18:11:33] keithdavis at solidtechservice dot com That makes no sense. How am I to determine in my error handler that the error control operator is being used? ------------------------------------------------------------------------ [2010-01-12 17:01:01] degeb...@php.net On my setup using PHP 5.3.1, this code: <?php function myErrorHandler($errno, $errstr, $errfile, $errline) { var_dump(error_reporting()); } set_error_handler('myErrorHandler', E_ALL); var_dump(error_reporting()); @include 'does-not-exist.php'; var_dump(error_reporting()); ?> Produces the following output: int(32767) int(0) int(0) int(32767) It is your own responsibility to check the error handling level inside your custom error handler. ------------------------------------------------------------------------ [2010-01-12 15:17:50] keithdavis at solidtechservice dot com The manual states "Of particular note is that this value will be 0 if the statement that caused the error was prepended by the @ error-control operator. " This is NOT happening. ------------------------------------------------------------------------ [2010-01-12 15:15:27] keithdavis at solidtechservice dot com But it's NOT setting the error reporting to 0. It is a bug, see this reply to a bug done in 2002. http://bugs.php.net/bug.php?id=16570&edit=2 When I use the @, it is supposed to pass an error level of 0, but it does not do this. It still sets it to 1024 and does NOT set my reporting level to 0. ------------------------------------------------------------------------ [2010-01-12 15:12:49] col...@php.net Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php @ temporarily sets error_reporting to 0, it doesn't prevent your handler to be called. You've to do the filtering in it based on error_reporting if you want to. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/50729 -- Edit this bug report at http://bugs.php.net/?id=50729&edit=1