PHP 4.0 Bug #8661: a copy of the internal array elements is sometimes not made
| From: | lgordon at idiotbrain dot com | Date: | Thu, 11 Jan 2001 21:27:34 +0000 |
| Subject: | PHP 4.0 Bug #8661: a copy of the internal array elements is sometimes not made | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-43812@lists.php.net to get a copy of this message | ||
From: lgordon@idiotbrain.com
Operating system: freeBSD
PHP version: 4.0.4
PHP Bug Type: Class/Object related
Bug description: a copy of the internal array elements is sometimes not made
<?php
// buggy.php
// If I leave both A1 and A2 commented out, the code works fine.
// If I uncomment A1 only, the code works as expected
// If I uncomment A2 only, the code does not work as expected
class Element
{
var $val;
function set_value($newval)
{
$this->val = $newval;
}
}
class Owner
{
var $elementArray;
function dump()
{
foreach ($this->elementArray as $index => $value)
{
print("index [$index] value [$value->val]<BR>");
}
}
}
$myOwner = new Owner();
$myOwner->elementArray[0] = new Element;
// -- A1 --
// this works as expected
$myOwner->elementArray[0]->val = 10;
// -- A2 --
// if this line is uncommented the code does not work as expected
//$myOwner->elementArray[0]->set_value(10);
print("dump myOwner<BR>");
$myOwner->dump();
print("<BR>");
print("make a copy of myOwner<BR>");
$copyOwner = $myOwner;
print("<BR>");
print("dump copyOwner<BR>");
$copyOwner->dump();
print("<BR>");
print("change copyOwner index 0 to 999999<BR>");
$copyOwner->elementArray[0]->val = 999999;
print("dump copyOwner<BR>");
$copyOwner->dump();
print("<BR>");
print("dump myOwner<BR>");
$myOwner->dump();
print("<BR>");
?>
--
Edit Bug report at: http://bugs.php.net/?id=8661&edit=1