#46304 [Bgs]: definening namespaced constant using define() defines CASE SENSITIVE namespace

From: Date: Thu, 16 Oct 2008 04:04:44 +0000
Subject: #46304 [Bgs]: definening namespaced constant using define() defines CASE SENSITIVE namespace
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-1211@lists.php.net to get a copy of this message
ID: 46304 Updated by: cellog@php.net Reported By: kenashkov at gmail dot com Status: Bogus Bug Type: Documentation problem Operating System: GNU/Linux debian lenny PHP Version: 5.3CVS-2008-10-15 (snap) New Comment: I think this is a valid bug - we store classes with lower-cased name, but store the original CaSeD name in the class. runtime define() should perform the same steps that compile-time define() does to ensure the namespaced constant is accessible in the same way. It's a bit slower, but more accurate. I'd say move this back to scripting engine, but I'll leave it up to felipe. Previous Comments: ------------------------------------------------------------------------ [2008-10-15 16:08:05] kenashkov at gmail dot com I know it is during runtime, but instead of marking it as bogus, would be better to document it. I'm changing the category. This behaviour has to be documented, or fixed. Is it possible to remap to lowercase internally the result of the define('CaSe::Sensitive::const')? Or is undesirable from consistant POV? ------------------------------------------------------------------------ [2008-10-15 15:57:01] felipe@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 The define() works in runtime. ------------------------------------------------------------------------ [2008-10-15 15:39:29] kenashkov at gmail dot com <? namespace NS1::ns2; const const2 = 'value2'; define('NS1::ns2::const1','value'); $dc = get_defined_constants(true); print '<pre>'.print_r($dc['user'],true).'</pre>'; ?> gives Array ( [ns1::ns2::const2] => value2 [NS1::ns2::const1] => value ) ------------------------------------------------------------------------ [2008-10-15 15:36:32] kenashkov at gmail dot com changed summary ------------------------------------------------------------------------ [2008-10-15 15:33:34] kenashkov at gmail dot com I had a quick look again over the docs and nowhere is documented that the namespaces are case insensitive. I think this should go in the docs, as well if this issue with define() wont be fixed, to be documented too. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/46304 -- Edit this bug report at http://bugs.php.net/?id=46304&edit=1

« previous php.doc.bugs (#1211) next »