[PHP-DEV] clone wars

2004-02-15 Thread Herr Witten
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. -- PHP Internals - PHP

Re: [PHP-DEV] clone wars

2004-02-15 Thread Herr Witten
I forgot to mention: I am use b4 On 15 Feb 2004, at 5:45 PM, Herr Witten 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

Re: [PHP-DEV] clone wars

2004-02-15 Thread Marcus Boerger
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

Re: [PHP-DEV] clone wars

2004-02-15 Thread Herr Witten
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

Re: [PHP-DEV] clone wars

2004-02-15 Thread Herr Witten
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

Re: [PHP-DEV] clone wars

2004-02-15 Thread Herr Witten
That should be clone $object for the example. On 15 Feb 2004, at 7:39 PM, Herr Witten wrote: $clone = clone $cell; -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php

Re: [PHP-DEV] clone wars

2004-02-15 Thread Marcus Boerger
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)

Re: [PHP-DEV] clone wars

2004-02-15 Thread Herr Witten
first as i said do the following to verify: It's a nice example, but it doesn't apply. I don't make a reference. second read the docs and question such things on [EMAIL PROTECTED] I did. This problem seemed to be internal, and it still does. -- PHP Internals - PHP Runtime Development Mailing

Re: [PHP-DEV] clone wars

2004-02-15 Thread Marcus Boerger
Hello, Monday, February 16, 2004, 1:54:36 AM, you wrote: first as i said do the following to verify: It's a nice example, but it doesn't apply. I don't make a reference. second read the docs and question such things on [EMAIL PROTECTED] I did. This problem seemed to be internal, and it

Re: [PHP-DEV] clone wars

2004-02-15 Thread Herr Witten
Here, I have reproduced the problem: class A { var $a = array(); public function makeAReference() { $array = $this-getA(); } public function getA() { return $this-a; } } $A = new A; $A-a = array(1); $A-makeAReference(); $clone = clone $A; $clone-a =

Re: [PHP-DEV] clone wars

2004-02-15 Thread Herr Witten
This too: class A { var $a = array(); public function getA() { return $this-a; } } $A = new A; $A-a = array(1); $array = $A-getA(); $clone = clone $A; $clone-a = array(); print_r($A); On 15 Feb 2004, at 9:14 PM, Herr Witten wrote: Here, I have reproduced the problem: