I noticed w/ version 5.1.2, the behavior of
list() has changed (this occurred at some point between version 5.0.4
and 5.1.2). When re-using a variable name in list() that list() is
being assigned to, instead of the values being assigned all at once, the
reused variable gets overwritten before all the values are read.
Here's an example:
** disclaimer: obviously this is sloppy code, but I want to point out
the behavior change (in case anyone else comes across similar code) **
<?
$data = array();
$data[] = array("value1", "value2", "value3", "value4");
$data[] = array("value1", "value2", "value3", "value4");
$data[] = array("value1", "value2", "value3", "value4");
$data[] = array("value1", "value2", "value3", "value4");
foreach($data as $record)
{
list($var1, $var2, $var3, $record) = $record;
echo "var 1: $var1, var 2: $var2, var 3: $var3, record: $record\\n";
}
?>
OUTPUT on version 5.0.4:
var 1: value1, var 2: value2, var 3: value3, record: value4
var 1: value1, var 2: value2, var 3: value3, record: value4
var 1: value1, var 2: value2, var 3: value3, record: value4
var 1: value1, var 2: value2, var 3: value3, record: value4
OUTPUT on version 5.1.2:
var 1: v, var 2: a, var 3: l, record: value4
var 1: v, var 2: a, var 3: l, record: value4
var 1: v, var 2: a, var 3: l, record: value4
var 1: v, var 2: a, var 3: l, record: value4Monday, 23 April 2012
php for list array
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment