Ответ
Функция unset() уничтожает указанную переменную в текущей области видимости.
Что происходит:
- Переменная удаляется из символической таблицы текущего scope.
- Если на значение, которое хранила переменная, больше нет ссылок, сборщик мусора освободит память.
- Последующие попытки доступа к переменной вызовут предупреждение
Undefined variable.
Пример:
$name = 'Alice';
unset($name);
var_dump($name); // PHP Notice: Undefined variable: name
Особенности для массивов и объектов:
- Для массива:
unset($arr[5])удалит элемент с индексом 5, но не переиндексирует массив. Для переиндексации используйтеarray_splice(). - Для объекта:
unset($obj->property)удалит публичное свойство. Если класс реализует магический метод__unset(), он будет вызван.