Edit report at http://bugs.php.net/bug.php?id=52133&edit=1
ID: 52133 Updated by: dmi...@php.net Reported by: bschussek at gmail dot com Summary: Functions cannot return an argument passed by reference as reference -Status: Assigned +Status: Bogus Type: Bug Package: Scripting Engine problem Operating System: Linux Ubuntu 10.04 PHP Version: 5.3.2 Assigned To: dmitry New Comment: You forgot "&" in assignment. $c =& ref($b); Previous Comments: ------------------------------------------------------------------------ [2010-06-23 00:51:13] bschussek at gmail dot com In my last comment I dumped first $b and then $c, so the output hasn't changed from PHP 5.3.2. ------------------------------------------------------------------------ [2010-06-23 00:48:36] bschussek at gmail dot com Sorry, but the test script produces still the wrong output for me. $ php -v PHP 5.3.3-dev (cli) (built: Jun 23 2010 00:45:57) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with Xdebug v2.0.5, Copyright (c) 2002-2008, by Derick Rethans $ php test.php string(6) "foobar" string(6) "fozbar" ------------------------------------------------------------------------ [2010-06-23 00:29:01] johan...@php.net Please try using this snapshot: http://snaps.php.net/php5.3-latest.tar.gz For Windows: http://windows.php.net/snapshots/ ------------------------------------------------------------------------ [2010-06-21 13:56:07] bschussek at gmail dot com Description: ------------ PHP does not behave as expected when passing arguments by reference into a function that are passed out again by reference. IMO, the below test script should behave equivalently to the following code (which produces the expected result): $b = 'foobar'; $a =& $b; $c =& $a; $c[2] = 'z'; var_dump($c); var_dump($b); Test script: --------------- function &ref(&$a) { return $a; } $b = 'foobar'; $c = ref($b); $c[2] = 'z'; Expected result: ---------------- string 'fozbar' (length=6) string 'fozbar' (length=6) Actual result: -------------- string 'fozbar' (length=6) string 'foobar' (length=6) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=52133&edit=1