RE: [PHP-GENERAL] Assign by reference...
| From: | Christopher Thompson | Date: | Tue, 13 Jun 2000 02:32:36 +0000 |
| Subject: | RE: [PHP-GENERAL] Assign by reference... | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-1680@lists.php.net to get a copy of this message | ||
You may need to reset the array pointer for $$multiples_arr
> -----Original Message-----
> From: Benjamin Berman [mailto:benbfly@yahoo.com]
> Sent: Monday, June 12, 2000 7:01 PM
> To: php-general@lists.php.net
> Cc: benbfly@yahoo.com
> Subject: [PHP-GENERAL] Assign by reference...
>
>
> 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.
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net
> For additional commands, e-mail: php-general-help@lists.php.net
> To contact the list administrators, e-mail: php-list-admin@lists.php.net
>
>