ID: 35277
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Assigned
+Status: Suspended
Bug Type: Arrays related
Operating System: windows xp sp2
PHP Version: 5.1.0RC6
Assigned To: dmitry
Previous Comments:
------------------------------------------------------------------------
[2005-11-18 16:16:40] [EMAIL PROTECTED]
The reason of this bug is IS_CV variables.
PHP doesn't increment/decrement refcount during fetching, also the
order of fetches may be changed. In 5.1 and lvalue of "$a[] = $a" is
evaluated before rvalue and changes rvalue (addes new element to
array). Then $a is assigned into this element. As a result we got
circular data structure where we shouldn't.
The same bug occurs with list()
Reproduce code:
---------------
<?php
$b = array("1","2","3");
list($a, $b, $c) = $b;
var_dump($a); //should print "1" (not "2")
var_dump($b);
var_dump($c);
$b = array("1","2","3");
list($a, $b[0], $c) = $b;
var_dump($a); //should print "1" (not "2")
var_dump($b);
var_dump($c);
?>
Expected result:
----------------
string(1) "1"
string(1) "2"
string(1) "3"
string(1) "1"
array(3) {
[0]=>
string(1) "2"
[1]=>
string(1) "2"
[2]=>
string(1) "3"
}
string(1) "3"
Actual result:
--------------
string(1) "2"
string(1) "2"
string(1) "3"
string(1) "2"
array(3) {
[0]=>
string(1) "2"
[1]=>
string(1) "2"
[2]=>
string(1) "3"
}
string(1) "3"
------------------------------------------------------------------------
[2005-11-18 15:55:42] [EMAIL PROTECTED]
Dmitry, please take care of it..
------------------------------------------------------------------------
[2005-11-18 15:39:56] [EMAIL PROTECTED]
Description:
------------
PHP 5.1.0 seems to be overly paranoid when trying to detect a
recursion. I do not know the internals but I do not think this is a
duplicate of http://bugs.php.net/bug.php?id=29389.
Reproduce code:
---------------
$a = array(); $a[] = $a; var_dump($a);
Expected result:
----------------
array(1) { [0]=> array(0) { } }
Actual result:
--------------
array(1) { [0]=> array(1) { [0]=> *RECURSION* } }
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=35277&edit=1