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! -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php