Re: Re: objects passed as reference in php5
| From: | Marcus Boerger | Date: | Sun, 08 Aug 2004 12:37:14 +0000 |
| Subject: | Re: Re: objects passed as reference in php5 | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-12000@lists.php.net to get a copy of this message | ||
Hello Ron,
that's prefectly correct.
regards
marcus
Sunday, August 8, 2004, 1:14:55 PM, you wrote:
> 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!
--
Best regards,
Marcus mailto:helly@php.net