ID:               35277
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Assigned
 Bug Type:         Arrays related
 Operating System: windows xp sp2
 PHP Version:      5.1.0RC6
 Assigned To:      dmitry
 New Comment:

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"



Previous Comments:
------------------------------------------------------------------------

[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

Reply via email to