Что делает функция unset с переменной в PHP?

«Что делает функция unset с переменной в PHP?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Функция unset() уничтожает указанную переменную в текущей области видимости.

Что происходит:

  1. Переменная удаляется из символической таблицы текущего scope.
  2. Если на значение, которое хранила переменная, больше нет ссылок, сборщик мусора освободит память.
  3. Последующие попытки доступа к переменной вызовут предупреждение Undefined variable.

Пример:

$name = 'Alice';
unset($name);
var_dump($name); // PHP Notice: Undefined variable: name

Особенности для массивов и объектов:

  • Для массива: unset($arr[5]) удалит элемент с индексом 5, но не переиндексирует массив. Для переиндексации используйте array_splice().
  • Для объекта: unset($obj->property) удалит публичное свойство. Если класс реализует магический метод __unset(), он будет вызван.