Re: objects passed as reference in php5

From: Date: Sun, 08 Aug 2004 11:14:55 +0000
Subject: Re: objects passed as reference in php5
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-11999@lists.php.net to get a copy of this message
i think the object will only cease to exist when all references to it are gone "Curt Zirzow" <curt@php.net> wrote in message news:20040808022353.GG6522@bagend.shire... > > I'm trying to document how objects are passed to functions in php5, > but am running into some troubles. > > In the code below the object appears to be a reference but when the > original object is destoyed it still somehow exists. Can someone > explain how this is? I was going to report a bug on this but using > the traditional &$obj usage it works perfectly fine. > > class Test { > public $object = null; > public $object1 = null; > > > function SetVarVal($obj) { > $this->object = $obj; > } > > function SetVarRef(&$obj) { > $this->object1 = &$obj; > } > > } > > $obj1 = new StdClass(); > > $obj2 = new Test(); > $obj2->SetVarVal($obj1); > $obj2->SetVarRef($obj1); > > > $obj1->foo = 'test'; /* show how obj1's is a ref */ > $obj1 = null; /* destroy object */ > > var_dump($obj2->object); /* still has object with ->foo */ > var_dump($obj2->object1); /* NULL */ > > > > Curt > -- > First, let me assure you that this is not one of those shady pyramid schemes > you've been hearing about. No, sir. Our model is the trapezoid!

« previous php.internals (#11999) next »