ID: 26006 Updated by: [EMAIL PROTECTED] Reported By: gms08701 at yahoo dot com -Status: Open +Status: Bogus Bug Type: *General Issues Operating System: FreeBSD 4.8-RELEASE-p10 PHP Version: 4.3.3 New Comment:
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 When you put an @ infront of a function or a language construct in this case all of the code performed by the function effectively has an error level of 0. Meaning that your error_reporting(0) inside y.php is not necessary as the error reporting is already at 0. Previous Comments: ------------------------------------------------------------------------ [2003-10-27 11:07:49] gms08701 at yahoo dot com Description: ------------ To my knowledge, when using @ at a function/variable/etc, it sets error_reporting to 0 at that instance, and return, to its previous state, after that instance. Unfortunately, after the instance of @, instead of returning to what it was set at previously, it returns to what is set in php.ini Reproduce code: --------------- --y.php-- <?php // error_reporting is currently at E_ALL (set from php.ini) // Set error_reporting to 0 error_reporting(0); // Returns 0 here var_dump(error_reporting()); ?> --z.php-- <?php @require('./y.php'); // This returns 2047 (E_ALL) var_dump(error_reporting()); ?> Expected result: ---------------- Its expected that z.php should return 0 from the var_dump(), where it inherits its error_reporting value from y.php, but is currently returning 2047 (E_ALL) When I remove '@' from require('./y.php'); in z.php, it then works correctly. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=26006&edit=1