The __clone Wars

php.internals

Unnamed Person

22 years ago
(Sorry for the subject, I couldn't resist). It seems that the parent class's variables are not being copied per bit by the default implementation, so how should a superclasses __clone() method be dealt with? In other words, should it be like this: public function __clone() { $this = parent::__clone(); $this->... = $that->... } P.S. Perhaps the $this object should already be set using the default implementation, and then the user could override certain properties if he so wishes; I believe the preliminary documentation says that this is the case, but it doesn't work like this.

George Schlossnagle

22 years ago
On Jan 19, 2004, at 3:52 PM, lingwitt@bellsouth.net wrote:
> In other words, should it be like this:
Yes.
> > P.S. > > Perhaps the $this object should already be set using the default > implementation, and then the user could override certain properties if > he so wishes; I believe the preliminary documentation says that this > is the case, but it doesn't work like this.
If you want the default cloning mechanism, you should just use the default clone method. If you specify your own __clone method, then you've effectively said 'I know what I am doing and how I want to do it.' Magical setting of attributes would a) be confusing b) cause twice the work to be done for any variables you don't want to be as default George