note 64065 deleted from function.list by googleguy
| From: | googleguy@php.net | Date: | Thu, 13 Sep 2012 10:06:47 +0000 |
| Subject: | note 64065 deleted from function.list by googleguy | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-190705@lists.php.net to get a copy of this message | ||
Note Submitter: dolan at teamsapient dot com
----
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: value4