ID: 50184
Updated by: [email protected]
Reported By: goatlabs at gmail dot com
-Status: Open
+Status: To be documented
-Bug Type: *Programming Data Structures
+Bug Type: Scripting Engine problem
Operating System: OSX 10.6.2; Debian Linux 5.0.3
PHP Version: 5.3.0
New Comment:
>From manual notes:
A note on redefining:
Constants can't be redefined:
$ php -r "define('A', 1); var_dump('A'); define('A', 2);
var_dump('A');";
string(1) "A"
PHP Notice: Constant A already defined in Command line code on line 1
string(1) "A"
But using the case insensitive setting shows that the internal
representation is lower case:
$ php -r "define('A', 1, true); var_dump('A'); define('A', 2);
var_dump('A');";
string(1) "A"
string(1) "A"
Note the lower case 'a' in the second define() here:
$ php -r "define('A', 1, true); var_dump('A'); define('a', 2);
var_dump('A');";
string(1) "A"
PHP Notice: Constant a already defined in Command line code on line 1
string(1) "A"
(Short version: Yes, but no)
Previous Comments:
------------------------------------------------------------------------
[2009-11-16 03:59:24] goatlabs at gmail dot com
Note: the description should read:
define() constants can be modified if originally defined
"case-INsensitive"
------------------------------------------------------------------------
[2009-11-16 01:44:49] goatlabs at gmail dot com
Description:
------------
define() constants can be modified if originally defined case-sensitive
Reproduce code:
---------------
define('TEST', 'foo', true);
var_dump(TEST);
define('TEST', 'bar');
var_dump(TEST);
Expected result:
----------------
string(3) "foo"
string(3) "foo"
Actual result:
--------------
string(3) "foo"
string(3) "bar"
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=50184&edit=1