#29702 [Opn]: $a=$GLOBALS works as $a=&$GLOBALS

From: Date: Mon, 16 Aug 2004 10:28:04 +0000
Subject: #29702 [Opn]: $a=$GLOBALS works as $a=&$GLOBALS
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-64697@lists.php.net to get a copy of this message
ID: 29702 User updated by: andrea dot busia at axis-sv dot it Reported By: andrea dot busia at axis-sv dot it Status: Open Bug Type: Scripting Engine problem Operating System: Win / Linux PHP Version: 5.0.1 New Comment: BTW: Even if I try to use array_diff_assoc to have a "COPY" of $GLOBALS the script gives me the same result. I thing this is a very big problem without a "array_copy" function. I tried: <? $xml=array("aaa", "bbb", "ccc"); foo(); function foo() { var_dump($GLOBALS["xml"]); $ar=array_diff_assoc($GLOBALS, array()); unset($ar['xml']); var_dump($GLOBALS["xml"]); } ?> Previous Comments: ------------------------------------------------------------------------ [2004-08-16 12:19:58] andrea dot busia at axis-sv dot it Is it documented? I didn't find this in the manual, probably this is a documentation problem. ------------------------------------------------------------------------ [2004-08-16 12:02:05] derick@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 This is a feature. ------------------------------------------------------------------------ [2004-08-16 11:45:17] andrea dot busia at axis-sv dot it Description: ------------ In this script seems that the $GLOBALS value is changed by the unset statement but I want to modify $ar, $GLOBALS must remain the same as before. Reproduce code: --------------- <? $xml=array("aaa", "bbb", "ccc"); foo(); function foo() { var_dump($GLOBALS["xml"]); $ar=$GLOBALS; unset($ar['xml']); var_dump($GLOBALS["xml"]); } ?> Expected result: ---------------- array(3) { [0]=> string(3) "aaa" [1]=> string(3) "bbb" [2]=> string(3) "ccc" } array(3) { [0]=> string(3) "aaa" [1]=> string(3) "bbb" [2]=> string(3) "ccc" } Actual result: -------------- array(3) { [0]=> string(3) "aaa" [1]=> string(3) "bbb" [2]=> string(3) "ccc" } NULL ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=29702&edit=1

« previous php.bugs (#64697) next »