Assign by reference...

From: Date: Tue, 13 Jun 2000 02:01:08 +0000
Subject: Assign by reference...
Groups: php.general 
Request: Send a blank email to php-general+get-1678@lists.php.net to get a copy of this message
I'm having a problem with the new assign by reference feature in PHP4. Consider the following code; it's an artificial example that takes an array of numbers, for instance (1,2,3) and transforms it into an array of arrays, where each array contains multiples of the original number, for instance ((1,10,100), (2,20,200), (3, 30, 300)). Here is the code: 1 $num_arr = array(1, 2, 3); 2 $multiples_arr = array(); 3 while (list($key, $val) = each($num_arr)) 4 { 5 $mult_arr = array($val, $val*10, $val*100); 6 $multiples_arr[] = &$mult_arr; 7 } 8 9 while (list($key, $mult_arr) = each($multiples_arr)) 10 { 11 print join(",",$mult_arr)."<BR>\n"; 12 } I would expect to get the output: 1,10,100 2,20,200 3,30,300 But instead, I get the following: 3,30,300 3,30,300 3,30,300 This is counter-intuitive with respect to other programming languages I've used. I can guess what's happening underneath to make PHP display this behavior, but it still seems to contradict my notion of what "assignment by reference" means. Is there any way to get PHP to do what I want it to do here? Thanks, ben.

« previous php.general (#1678) next »