Хороший ответ, Марк, но я не уверен, как это будет работать:
Первая диаграмма:
<?php
$obj = "foo";
$a = $obj;
$b = $obj;
$c = $obj;
$c = NULL;
unset( $c );
var_dump( $a, $b, $c );
Результаты:
string(3) "foo"
string(3) "foo"
NULL
Вторая диаграмма:
<?php
$obj = "foo";
$wrapper =& $obj;
$a = $wrapper;
$b = $wrapper;
$c = $wrapper;
$c = NULL;
unset( $c );
var_dump( $a, $b, $c );
Результаты:
string(3) "foo"
string(3) "foo"
NULL
Правильный путь:
<?php
$obj = "foo";
$a =& $obj;
$b =& $obj;
$c =& $obj;
$c = NULL;
var_dump( $a, $b, $c );
Результаты:
NULL
NULL
NULL
Пояснение:
Вам нужно сослаться на ваши переменные
$ a, $ b, $ c по адресу памяти
$ obj, таким образом, когда вы устанавливаете $ c в
NULL, это установит фактический адрес памяти
в NULL вместо ссылки.