Hello,
first as i said do the following to verify:
[EMAIL PROTECTED] /usr/src/php5 $ php -r '$a=array(1,2);class t{public $a;function
f(){$this->a=&$GLOBALS["a"];}}$o1=new t;$o1->f();var_dump($o1);$o2=clone
$o1;$o1->a=2;var_dump($o2);var_dump($o1);'
make: `sapi/cli/php' is up to date.
object(t)#1 (1) {
["a"]=>
&array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
}
object(t)#2 (1) {
["a"]=>
&int(2)
}
object(t)#1 (1) {
["a"]=>
&int(2)
}
then remove the '&'.
second read the docs and question such things on [EMAIL PROTECTED]
Monday, February 16, 2004, 1:39:44 AM, you wrote:
> More specifically,
> This causes a change in $object:
> $clone = clone $object;
> $clone->troublesomeVariable = array();
> But this doesn't:
> $clone = clone $cell;
> $clone = null;
> $clone->_subElements = array();
> On 15 Feb 2004, at 7:35 PM, Herr Witten wrote:
>> It appears that only one of the variables, an array, is being shared
>> across these multiple objects, but other array variables are not.
>> Moreover, When I make a clone and then set the clone to null, all
>> clones made thereafter are correct.
>>
>> $clone = clone $object;
>> $clone = null;
>>
>> Also, I can't replicate the problem with another class. It only seems
>> to be this class.
>>
>> On 15 Feb 2004, at 5:47 PM, Marcus Boerger wrote:
>>
>>> Hello,
>>>
>>> most probably that property is a reference in which case the result is
>>> correct.
>>>
>>> Sunday, February 15, 2004, 11:45:56 PM, you wrote:
>>>
>>>> It appears that cloning is broken, since a modification to the clone
>>>> modifies the original. For my __clone method implementation, I allow
>>>> all of the variables to be set by default except for one. But this
>>>> problem persists even when I don't modify that one variable.
>>>
>>>
>>>
>>>
>>> --
>>> Best regards,
>>> Marcus mailto:[EMAIL PROTECTED]
>>>
>>
>> --
>> PHP Internals - PHP Runtime Development Mailing List
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
--
Best regards,
Marcus mailto:[EMAIL PROTECTED]
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php