Re: Strange action with =&
| From: | Peter Beckman | Date: | Tue, 13 Feb 2007 04:53:51 +0000 |
| Subject: | Re: Strange action with =& | ||
| References: | 1 2 | Groups: | php.db |
| Request: | Send a blank email to php-db+get-43069@lists.php.net to get a copy of this message | ||
On Tue, 13 Feb 2007, bedul wrote:
sry i don't get what u mean??This is how you assign a variable by reference. $rate should be a reference to $mydata[$prefix], not a copy. If I change the value of $rate, the value of $mydata[$prefix] is also changed, and vice versa.I'm looping through an array and I did this:$rate =& $mydata[$prefix];
Because I'm trying to point out a problem with PHP, where setting a reference when the other side is undefined or not set, PHP creates a reference to a previously non-existent array item, just by setting a reference. I don't think that should happen. Your code doesn't set anything by reference.Now, in some cases $mydata[$prefix] wasn't set/defined, so I expected $rate to not be defined, or at least point to something that wasn't defined. Instead, PHP 5.1.6 set $mydata[$prefix] to nothing. If I had:the reason mydata2 empty was because it don't have value in it!! full source plz why u don't try this $txt.="<ol>"; foreach($mydata as $nm=>$val){ $txt.="\n<li> $nm = $val"; $txt2="<br>\$mydata[$nm] = $val"; } $txt.="</ol>"; print $txt;$mydata[1] = 3; $mydata[3] = 2; $mydata[5] = 1;And did a loop from $i=1; $i++; $i<=5 I'd get:$mydata[1] = 3; $mydata[2] = ; $mydata[3] = 2; $mydata[4] = ; $mydata[5] = 1;
I don't know what you mean. ---------------------------------------------------------------------------Is this expected? A bug? Fixed in 5.2.0? I know I shouldn't set a reference to a variable that doesn't exist, but the expected result is a warning/error, not for PHP to populate an array.we should cross check again.
Peter Beckman Internet Guy beckman@purplecow.com http://www.purplecow.com/---------------------------------------------------------------------------