Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:11999 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 44015 invoked by uid 1010); 8 Aug 2004 11:15:15 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 43932 invoked by uid 1007); 8 Aug 2004 11:15:14 -0000 Message-ID: <20040808111514.43930.qmail@pb1.pair.com> To: internals@lists.php.net References: <20040808022353.GG6522@bagend.shire> Date: Sun, 8 Aug 2004 13:14:55 +0200 Lines: 51 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 X-Posted-By: 212.238.144.71 Subject: Re: objects passed as reference in php5 From: r.korving@xit.nl ("Ron Korving") i think the object will only cease to exist when all references to it are gone "Curt Zirzow" 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!