Bug #12905 Updated: "return" returns a copy of an object instead of a reference

From: Date: Wed, 22 Aug 2001 20:19:16 +0000
Subject: Bug #12905 Updated: "return" returns a copy of an object instead of a reference
References: 1  Groups: php.dev php.doc 
Request: Send a blank email to php-dev+get-64099@lists.php.net to get a copy of this message
ID: 12905 Updated by: jeroen Reported By: olli@ukgamer.net Old Status: Open Status: Bogus Bug Type: Documentation problem Operating System: Slackware 7 PHP Version: 4.0.6 New Comment: Please read: http://www.php.net/manual/en/language.references.return.php [By the way, a user complains that is hard to read. If you or anyone else has a better text, simply mail it to phpdoc@lists.php.net, and we'll put it online.] Previous Comments: ------------------------------------------------------------------------ [2001-08-22 12:20:15] olli@ukgamer.net renaming the function: function AddChild(... to function &AddChild(... makes return return by reference instead of by value, i didnt think to do this so it appears its my fault:) i've changed this bug to a documentation problem tho cos i cant find any reference to this in the docs. ------------------------------------------------------------------------ [2001-08-22 12:13:08] olli@ukgamer.net <? Class ChildClass { var $value; function ChildClass($value){ $this->value = $value; } } Class ParentClass { var $children; function ParentClass(){ $this->children = array(); } function AddChild($value){ $child = &new ChildClass($value); array_push($this->children, &$child); return $child; } } $p1 = &new ParentClass(); $c1 = &$p1->AddChild('set in constructor'); $c1->value = 'set elsewhere'; echo "the reference to the object created in AddBand and stored in the parentclass' array is different to that returned by the AddBand function<br>"; echo $p1->children[0]->value."<br>"; echo $c1->value; ?> "return" is returning a copy of the object created in parentclass->AddChild instead of a reference. "return &$object" is flagged as invalid by the php interpreter. thanks a lot olli holliday ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=12905&edit=1

« previous php.dev (#64099) next »