Bug #51791 [Bgs->Opn]: constant() failed to check undefined constant and php interpreter stoped
| From: | philip@php.net | Date: | Wed, 12 May 2010 23:02:35 +0000 |
| Subject: | Bug #51791 [Bgs->Opn]: constant() failed to check undefined constant and php interpreter stoped | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-150425@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=51791&edit=1
ID: 51791
Updated by: philip@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] mike@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