ID: 44128
Updated by: [EMAIL PROTECTED]
Reported By: felipensp at gmail dot com
-Status: Open
+Status: Bogus
Bug Type: Scripting Engine problem
PHP Version: 5.3CVS-2008-02-15 (CVS)
-Assigned To:
+Assigned To: dmitry
New Comment:
Your expectation is wrong:
In your second example two variables refer to the same NULL value.
(first element of array and variable $a)
Compare the output of the following two scripts
<?php
$x = array(&$a);
var_dump($x);
?>
Actual result:
--------------
array(1) {
[0]=>
&NULL
}
<?php
$x = array(&$a);
unset($a);
var_dump($x);
?>
Actual result:
--------------
array(1) {
[0]=>
NULL
}
In the third example you assign the array from second example to $a,
but $a is a reference, so the assignment will update the first element
of array too.
<?php
$b = array(&$a);
var_dump($b);
$a = $b;
var_dump($b);
?>
Actual result:
--------------
array(1) {
[0]=>
&NULL
}
array(1) {
[0]=>
&array(1) {
[0]=>
&array(1) {
[0]=>
*RECURSION*
}
}
}
All results are the same as they should be.
Previous Comments:
------------------------------------------------------------------------
[2008-02-15 12:48:42] felipensp at gmail dot com
Description:
------------
Undefined variables non-reference/reference as item of an array has
different behavior.
Reproduce code:
---------------
1:
[EMAIL PROTECTED]:~/php5$ sapi/cli/php -r 'var_dump($a =array($a));'
2:
[EMAIL PROTECTED]:~/php5$ sapi/cli/php -r 'var_dump(array(&$a));'
3:
[EMAIL PROTECTED]:~/php5$ sapi/cli/php -r 'var_dump($a =array(&$a));'
Expected result:
----------------
2 and 3 as same result.
Actual result:
--------------
1:
array(1) {
[0]=>
NULL
}
2:
array(1) {
[0]=>
&NULL
}
3:
array(1) {
[0]=>
&array(1) {
[0]=>
&array(1) {
[0]=>
*RECURSION*
}
}
}
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=44128&edit=1