что есть объект? если речь про экземпляр какого-то класса, то гуглить что такое конструкторы и деструкторы.
Нет, любая переменная/массив, передаваемая через ссылку. Написал небольшой пример, чтобы было понятнее: PHP: <? class Test { private $a; function Test(){} public function printA(){ echo "<br />Val A: ".$this->a; } public function deleteByRef(){ unset($this->a); } public function setValA($data){ $this->a = $data; } public function setRefA(&$data){ $this->a = &$data; } } session_start(); $_SESSION['test'] = "OK"; echo $_SESSION['test']; $obj = new Test(); $obj->setRefA(&$_SESSION['test']); $obj->printA(); $obj->setValA("gy"); $obj->printA(); $obj->deleteByRef(); $obj->printA(); echo "<br />".$_SESSION['test']; ?> Результат: Код (Text): OK Val A: OK Val A: gy Val A: gy Насколько я понял unset() не удаляет объект, передаваемый через ссылку, а удаляет только саму ссылку. Можно ли это сделать как-нибудь по-другому ?
Удаляя ссылку на переменную ты не удаляешь переменную. Присваивай переменной null, если хочешь её очистить.
Проблемма немного в другом, сборщик мусора и null pointers тут нипричём, так же как и не стоит вопрос с очисткой памяти ... Прямой вопрос: Каким образом я могу удалить элемент суперглобального массива $_SESSION['test'] через ссылку ?
Окей, тогда придётся делать немного коряво: весь массив на вход -> производим нужные действия, в том числе и операции удаления, если необходимо -> отдаём результат на выход -> присваиваем массиву новые значения. Эффект достигается вообщем-то такой-же как и от действий через ссылку - никакой привязки к суперглобальным данным, легко заменить $_POST на $_GET или $_SESSION на какой-либо другой механизм хранения данных и т.д.