Edit report at http://bugs.php.net/bug.php?id=51791&edit=1
ID: 51791 Updated by: phi...@php.net Reported by: iliavlad at mail dot ru Summary: constant() failed to check undefined constant and php interpreter stoped -Status: Bogus +Status: Open Type: Bug Package: Reproducible crash Operating System: Windows, Linux PHP Version: 5.3.2 New Comment: I don't see this change mentioned at any of the following locations: - http://php.net/php5news - http://php.net/migration53 - http://php.net/function.constant Therefore, it can't be completely bogus. Please explain if this BC break in 5_3 is intentional. constant('IDONOTEXIST') still returns NULL however, with E_WARNING instead of E_FATAL. Previous Comments: ------------------------------------------------------------------------ [2010-05-13 00:09:29] iliavlad at mail dot ru Hi Mike, according to manual http://php.net/manual/en/function.constant.php constant() eturns the value of the constant, or NULL if the constant is not defined. And this happens with php 5.2 version. With php 5.3 there is a fatal error and php interpreter stops. There are no words about fatal error in manual. ------------------------------------------------------------------------ [2010-05-12 08:16:15] m...@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 ------------------------------------------------------------------------ [2010-05-11 12:12:45] iliavlad at mail dot ru Description: ------------ constant() failed to check undefined constant and php interpreter stoped, but constant() should return NULL and php interpreter should continue to work. Test script: --------------- class A { const B = 1; } var_dump(constant('A::B1')); echo 5; Expected result: ---------------- Warning: constant(): Couldn't find constant A::B1 NULL 5 Actual result: -------------- >php -v PHP 5.3.2 (cli) (built: Mar 3 2010 19:40:13) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies >php -r "class A { const B = 1;} var_dump(@constant('A::B1')); echo 5;" >php -r "class A { const B = 1;} var_dump(constant('A::B1')); echo 5;" Fatal error: Undefined class constant 'A::B1' in Command line code on line 1 Call Stack: 0.0003 317608 1. {main}() Command line code:0 0.0003 317688 2. constant() Command line code:1 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=51791&edit=1