On Tue, 13 Feb 2007, bedul wrote:
sry i don't get what u mean??
I'm looping through an array and I did this:
$rate =& $mydata[$prefix];
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.
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:
$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;
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;
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.
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.
I don't know what you mean.
---------------------------------------------------------------------------
Peter Beckman Internet Guy
beckman@xxxxxxxxxxxxx http://www.purplecow.com/
---------------------------------------------------------------------------
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php