Edit report at https://bugs.php.net/bug.php?id=63729&edit=1

 ID:                 63729
 User updated by:    dinoel at gmail dot com
 Reported by:        dinoel at gmail dot com
 Summary:            E_DEPRECATED errors is not handled properly
 Status:             Open
 Type:               Bug
 Package:            Output Control
 Operating System:   windows
 PHP Version:        5.4.9
 Block user comment: N
 Private report:     N

 New Comment:

Happens on 5.3.19 also.


Previous Comments:
------------------------------------------------------------------------
[2012-12-08 20:32:22] dinoel at gmail dot com

Description:
------------
Hi,

E_DEPRECATED is not handled properly if error handler / error reporting is set 
in same file.

pre-requirements : error_reporting set to E_ALL in php.ini file

I assume this is because E_DEPRECATED error is fired on "compile" time, not 
execution time.. 

Please notice that this problem happens only with " =& new ..." constructions 
(and probably some others) , other kind of E_DEPRECATED errors (like one which 
fired when i'm using deprecated functions, like ereg) are handled as expected. 

This bug is probably related : https://bugs.php.net/bug.php?id=61031 

Test script:
---------------
testfile.php 
<?php
error_reporting(0);
include('testfile1.php');
?>



testfile1.php
<?php
error_reporting(0);
class foo {
}

$a =& new foo();
echo "success";
?>

Expected result:
----------------
php -f testfile.php
success

php -f testfile1.php
success


Actual result:
--------------
php -f testfile.php
"success"

php -f testfile1.php
PHP Deprecated:  Assigning the return value of new by reference is deprecated in
 testfile1.php on line 6

Deprecated: Assigning the return value of new by reference is deprecated in 
testfile1.php on line 6
success



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63729&edit=1

Reply via email to