tags:

views:

52

answers:

2
$test = 'aaaaaa';
$abc = & $test;
unset($test);
echo $abc;

It outputs 'aaaaaa',which is already unset,can you explain this?

+5  A: 

No, it unsets $test, but the value is not deleted because there is another reference to it, namely $abc.

newacct
+1 for brief explanation.
thephpdeveloper
+1  A: 

When you call:

$abc =& $test;

It points $abc at the same object in memory that $test is pointing at. It doesn't point $abc at $test - there's a subtle difference.

This means you can destroy $test, but $abc will still be pointing at the object in memory, so the value is not destroyed.

Sohnee