note 64065 deleted from function.list by googleguy

From: 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

« previous php.notes (#190705) next »