ID: 6231 Updated by: yohgaki Reported By: [EMAIL PROTECTED] Status: Analyzed Bug Type: Scripting Engine problem Old Operating System: Windows 95 OSR2 Operating System: Linux Old PHP Version: 4.0.1pl2 PHP Version: 4.1.0 New Comment:
Just an update. I verified with Linux and 4.1.0. I agrree with the last comment. There is no need to use settype().... But this problem should be addressed... Previous Comments: ------------------------------------------------------------------------ [2000-08-31 08:56:47] [EMAIL PROTECTED] Well, I guess you shouldn't use settype there. I don't see why you should. ------------------------------------------------------------------------ [2000-08-18 06:21:34] [EMAIL PROTECTED] Thereīs really some problem here, Iīve cut down the code to illustrate the problem. After calling settype() on an already existent object (really donīt needed) named $this->prop, settype() changes that property to a reference (see var_dump() output)... apparently to a reference to the equivalent property of another object, I canīt imagine that was intended... perhaps zend tried to be smart in any way... class BOMainstr{ } class BOMain2{ function BOMain2 () { $this->storage = new BOMainstr(); var_dump($this->storage);var_dump($this); settype($this->storage,'object'); var_dump($this->storage);var_dump($this); } function get() { return $this->storage->ID; } function set($ID) { $this->storage->ID = $ID; } } $C = new BOMain2(); $C->set(1); $D = $C; $D->set(2); echo "C->get() =>" . $C->get() .'<BR>'; echo "D->get() =>" . $D->get(); ?> ------------------------------------------------------------------------ [2000-08-18 04:14:49] [EMAIL PROTECTED] How working object copieng? Object copy as reference or as object copy? ------------------------------------------------------------------------ [2000-08-18 04:11:05] [EMAIL PROTECTED] +++ Wrong class copieng +++ <? /* Class BOMain1 and BOMain2 are different in one string see below */ class BOMainstr{ // Class attributes var $ID; // Object ID (integer) } // end class definition //-----------------------Class 1---------------------------- class BOMain1{ var $storage; //nested object function BOMain1 () { $this->storage = new BOMainstr(); } function get() { return $this->storage->ID; } function set($ID) { $this->storage->ID = $ID; } } // end class definition //-----------------------Class 2---------------------------- class BOMain2{ var $storage; //nested object function BOMain2 () { $this->storage = new BOMainstr(); settype($this->storage,'object'); // Different string } function get() { return $this->storage->ID; } function set($ID) { $this->storage->ID = $ID; } } // end class definition $A = new BOMain1(); $A->set(1); $B = $A; $B->set(2); echo "A->get() =>" . $A->get() .'<BR>'; echo "B->get() =>" . $B->get() .'<HR>'; $C = new BOMain2(); $C->set(1); $D = $C; $D->set(2); echo "C->get() =>" . $C->get() .'<BR>'; echo "D->get() =>" . $D->get(); ?> ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=6231&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]