#40590 [Opn->Bgs]: list($k,$v) = $v; gives unexpected output
| From: | sean@php.net | Date: | Sat, 24 Feb 2007 16:11:17 +0000 |
| Subject: | #40590 [Opn->Bgs]: list($k,$v) = $v; gives unexpected output | ||
| References: | 1 | Groups: | php.doc |
| Request: | Send a blank email to phpdoc+get-969375587@lists.php.net to get a copy of this message | ||
ID: 40590
Updated by: sean@php.net
Reported By: black at scene-si dot org
-Status: Open
+Status: Bogus
Bug Type: Documentation problem
Operating System: linux
PHP Version: 5.2.1
New Comment:
This is already documented in function.list:
"list() assigns the values starting with the right-most parameter. If
you are using plain variables, you don't have to worry about this. But
if you are using arrays with indices you usually expect the order of
the indices in the array the same you wrote in the list() from left to
right; which it isn't. It's assigned in the reverse order."
$v is being assigned in the first assignment of the list(). When that
new $v is used to calculate $k, you're getting the string.
S
Previous Comments:
------------------------------------------------------------------------
[2007-02-24 15:17:28] black at scene-si dot org
Consider fixing the documentation, to reflect this "expected"
behaviour. I changed the category to documentation problem and status
back to open.
Regards,
Tit
------------------------------------------------------------------------
[2007-02-24 15:09:24] iliaa@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
In PHP 5 this is the expected behavior.
------------------------------------------------------------------------
[2007-02-22 13:26:58] black at scene-si dot org
Description:
------------
list() overwriting variable, unexpected result (different from php4).
Reproduce code:
---------------
$v = array("00","-- Day --");
list($k,$v) = $v;
var_dump(array($k,$v));
Expected result:
----------------
Var dump should return:
array(2) {
[0]=> string(2) "00"
[1]=> string(11) "-- Day -- "
}
Actual result:
--------------
Var dump returns:
array(2) {
[0]=> string(1) "-"
[1]=> string(11) "-- Day -- "
}
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=40590&edit=1