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