Re: #20993 [Ver]: Element value changes without asking

From: Date: Fri, 13 Dec 2002 20:09:03 +0000
Subject: Re: #20993 [Ver]: Element value changes without asking
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-92464@lists.php.net to get a copy of this message
It would be easy to resolve this problem if we were allowed to break backwards compatibilities, as long as the results of following script can be said to be expected. <?php $foo = array(1, 2, 3); $bar = array(); $i = count($foo); while (--$i >= 0) { $bar[$i] = &$foo[$i]; } $foo_ref = &$foo; $bar_ref = &$bar; $foo_copy = $foo; $bar_copy = $bar; $foo_copy[1] = '?'; echo 'foo: '; debug_zval_dump($foo); echo 'foo_ref: '; debug_zval_dump($foo_ref); echo 'foo_copy: '; debug_zval_dump($foo_copy); echo 'bar: '; debug_zval_dump($bar); echo 'bar_ref: '; debug_zval_dump($bar_ref); echo 'bar_copy: '; debug_zval_dump($bar_copy); ?> Is this a kind of "Won't fix" thing? Moriyoshi moriyoshi@php.net wrote: > ID: 20993 > Updated by: moriyoshi@php.net > Reported By: henrik.gebauer@web.de > Status: Verified > Bug Type: Variables related > Operating System: Any > PHP Version: 4.0CVS-2002-12-13 > New Comment: > > Verified with 4.2.3 > > > > Previous Comments: > ------------------------------------------------------------------------ > > [2002-12-13 12:42:22] msopacua@php.net > > Verified and added testcase to CVS > > ------------------------------------------------------------------------ > > [2002-12-13 12:01:33] henrik.gebauer@web.de > > I create an array an then a reference to an element of that array. > Then the array is passed to a function (by value!) which changes the > value of the element. > After that, the global array has also another value. > > I would expect this behaviour if I passed the array by reference but I > do not. > > <?php > > $array = array(1); > > $reference =& $array[0]; > > echo $array[0], '<br>'; > theFunction($array); > > echo $array[0], '<br>'; > > function theFunction($array) { > $array[0] = 2; > } > > ?> > > ------------------------------------------------------------------------ > > [2002-12-13 12:00:37] henrik.gebauer@web.de > > I create an array an then a reference to an element of that array. > Then the array is passed to a function (by value!) which changes the > value of the element. > After that, the global array has also another value. > > I would expect this behaviour if I passed the array by reference but I > did not. > > <?php > > $array = array(1); > > $reference =& $array[0]; > > echo $array[0], '<br>'; > theFunction($array); > > echo $array[0], '<br>'; > > function theFunction($array) { > $array[0] = 2; > } > > ?> > > ------------------------------------------------------------------------ > > > -- > Edit this bug report at ÓælŠU > ÁÊ“Óݨԉšhttp://bugs.php.net/?id=20993&edit=1 >

« previous php.dev (#92464) next »