Edit report at http://bugs.php.net/bug.php?id=48478&edit=1
ID: 48478 Updated by: tony2...@php.net Reported by: arancaytar dot ilyaran at gmail dot com Summary: Super-globals cannot be accessed with literal keys -Status: Open +Status: Feedback Type: Bug Package: Arrays related Operating System: Ubuntu 9.04 PHP Version: 6CVS-2009-06-05 (snap) New Comment: Please try using this snapshot: http://snaps.php.net/php-trunk-latest.tar.gz For Windows: http://windows.php.net/snapshots/ Previous Comments: ------------------------------------------------------------------------ [2009-06-06 10:57:49] arancaytar dot ilyaran at gmail dot com Failed to add; this will also work: print $_SERVER[(binary)'SCRIPT_NAME']; That's pretty nasty to have to do consistently though. You could work around it by defining constants for all keys: define(SCRIPT_NAME, (binary)'SCRIPT_NAME'); print $_SERVER[SCRIPT_NAME]; But that's also ugly. It'd be more convenient if the keys were in Unicode by default. ------------------------------------------------------------------------ [2009-06-05 11:22:04] arancaytar dot ilyaran at gmail dot com Description: ------------ In the current snapshot of PHP6, the values stored in the "internal" $_SERVER and $_ENV super-globals cannot be accessed using literal string keys like $_SERVER['SCRIPT_NAME']. This is because the array keys in these super-globals are of type "string", while literals in the script implicitly are of type "unicode". This problem does not occur in $_GET, $_POST and $_REQUEST, because the request parameter names are implicitly in unicode too. Reproduce code: --------------- // This will fail and print a notice: print $_ENV['SHELL'] . "\n"; // This works: foreach($_ENV as $key => $value) if ($key == 'SHELL') print $_ENV[$key] . "\n"; // This will work: foreach ($_ENV as $key => $value) $_ENV["$key"] = $value; print $_ENV['SHELL'] . "\n"; Expected result: ---------------- /bin/bash /bin/bash /bin/bash Actual result: -------------- Notice: Undefined index: SHELL in - on line 2 /bin/bash /bin/bash ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=48478&edit=1