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

Reply via email to