#25996 [Com]: Assignment by reference suppress index error
| From: | kevin at hatry dot com | Date: | Thu, 30 Oct 2003 08:22:23 +0000 |
| Subject: | #25996 [Com]: Assignment by reference suppress index error | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-49653@lists.php.net to get a copy of this message | ||
ID: 25996
Comment by: kevin at hatry dot com
Reported By: hongnk at hotmail dot com
Status: Verified
Bug Type: Zend Engine 2 problem
Operating System: Irrelevant
PHP Version: 5CVS, 4CVS
New Comment:
As i didnt find this bug before submitting mine (surely because we
didnt experience it in the same way), i was asked to add a comment here
with my version of the bug so here it is:
Description:
------------
When passing a non-existing portion of an array by reference this
portion gets created even if the function does not touch the array =>
it
is modified in the calling line.
It works with string indexes as well.
Reproduce code:
---------------
error_reporting(E_ALL);
$tab2 = array( );
function do_nothing ( &$var ) {
// code here doesnt matter
}
do_nothing($tab2[10]);
var_dump($tab2);
Expected result:
----------------
array(0) {
}
Actual result:
--------------
array(1) {
[10]=>
NULL
}
Previous Comments:
------------------------------------------------------------------------
[2003-10-29 14:13:04] moriyoshi@php.net
Related to bug #26030
------------------------------------------------------------------------
[2003-10-26 21:33:23] hongnk at hotmail dot com
Description:
------------
Accessing array with uninitialized index will normally trigger error:
$a=array();
$b=$a['unknown']; => undefined index error
but if I assign by reference:
$b=&$a['unknown'];
then PHP no longer throw error. (The same goes for assigning undefined
property to an object.)
This makes it difficult to debug scripts.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=25996&edit=1