ID:               30345
 Updated by:       [EMAIL PROTECTED]
 Reported By:      talex_id at o2 dot ru
-Status:           Open
+Status:           Bogus
 Bug Type:         *General Issues
 Operating System: FreeBSD
 PHP Version:      4.3.8
 New Comment:

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

You can't use the superglobals as variable variables, that's in the
manual.


Previous Comments:
------------------------------------------------------------------------

[2004-10-06 23:20:35] talex_id at o2 dot ru

Description:
------------
PHP allows to use 'variable variables', constructions, like a $$name or
${$name}, where $name is a string. But if i try to access to $GLOBALS
from function using this method ($$name or ${$name}, where $name =
'GLOBALS') i can't get it until i use its name at least one time into
function (or method) body. It's enouth to add string $GLOBALS; (to
'touch') to make it visible from $$name construction. Another predifned
variables are unaccessible even if i set some values to them into
function body. See code examples
(http://talex-id.o2.ru/devel/php/bugs/predefined_variables1.php.txt and
http://talex-id.o2.ru/devel/php/bugs/predefined_variables2.php.txt). I
used CLI version of PHP to test them.


Reproduce code:
---------------
<?php
function f1()
{       
        echo 'GLOBALS, direct : ' . $GLOBALS . "\n";
        echo 'GLOBALS, string in "{}" : ' . ${'GLOBALS'} . "\n";
} 
function f2()
{
        $g_name = 'GLOBALS';
        echo 'GLOBALS, string from variable in "{}" : ' . ${$g_name} . "\n"; 
} 
function f3()
{       
        $g_name = 'GLOBALS';
        $GLOBALS; // Now we just have to touch GLOBALS variable to make it
visible
        echo 'GLOBALS, toched, string from variable in "{}" : ' . ${$g_name} .
"\n"; 
} 
f1();
echo "----------------------------------------------------\n";
f2();
echo "----------------------------------------------------\n";
f3();
?> 

Expected result:
----------------
GLOBALS, direct : Array
GLOBALS, string in "{}" : Array
----------------------------------------------------
GLOBALS, string from variable in "{}" : Array
----------------------------------------------------
GLOBALS, toched, string from variable in "{}" : Array


Actual result:
--------------
GLOBALS, direct : Array
GLOBALS, string in "{}" : Array
----------------------------------------------------
GLOBALS, string from variable in "{}" :
----------------------------------------------------
GLOBALS, toched, string from variable in "{}" : Array



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=30345&edit=1

Reply via email to