[DOC-BUGS] Doc #80548 [Com]: Value or error_reporting() within handler with errors suppressed is 4437, not 0
[email protected] ("danieal345adam at gmail dot com") Mon, 15 Jul 2024 05:12:24 +0000
| Newsgroups | php.doc.bugs |
|---|---|
| Message-ID | <[email protected]> |
Edit report at https://bugs.php.net/bug.php?id=80548&edit=1
ID: 80548
Comment by: danieal345adam at gmail dot com
Reported by: dregad at mantisbt dot org
Summary: Value or error_reporting() within handler with
errors suppressed is 4437, not 0
Status: Verified
Type: Documentation Problem
Package: Documentation problem
PHP Version: 8.0.0
Block user comment: N
Private report: N
New Comment:
Thanks for creating this . (https://github.com)(https://www.mycenturahealth.com.co)
Previous Comments:
------------------------------------------------------------------------
[2020-12-24 12:29:37] dregad at mantisbt dot org
Thanks for the fast response.
I did check the migration guide, but for some reason this bit escaped my attention. Guess I need glasses ;-)
Merry Xmas
------------------------------------------------------------------------
[2020-12-24 12:05:25] [email protected]
This is a deliberate change, and already documented in the
migration guide[1] (search for "the @ operator"). It is indeed
not yet documented in the manual proper.
[1] <https://www.php.net/manual/en/migration80.incompatible.php>
------------------------------------------------------------------------
[2020-12-24 10:24:54] dregad at mantisbt dot org
Description:
------------
According to set_error_handler documentation [1],
"current value of error_reporting [...] will be 0 if the statement that caused the error was prepended by the @ error-control operator."
This works as documented with PHP 7.4, but not in 8.0.0 where error_reporting = 4437.
I'm not sure whether this desired behavior or not, but if it is then documentation is incorrect.
[1]: https://www.php.net/manual/en/function.set-error-handler.php
Test script:
---------------
<?php
function error_handler( $p_type, $p_error, $p_file, $p_line ) {
echo "error_reporting in handler: ", error_reporting(), PHP_EOL;
}
set_error_handler( 'error_handler' );
@date_default_timezone_set('');
Expected result:
----------------
error_reporting = 0
Actual result:
--------------
error_reporting = 4437
(with PHP 7.4, error_reporting = 0 as expected)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80548&edit=1