В чем разница между функциями unset() и unlink() в PHP?

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

Ответ

Функции unset() и unlink() выполняют принципиально разные операции в PHP.

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

$user = ['name' => 'Alice'];
$temp = $user;

unset($user); // Уничтожает переменную $user
// echo $user; // Вызовет Notice: Undefined variable
// $temp при этом все еще существует и содержит массив.

unlink() — функция для работы с файловой системой. Она удаляет файл с диска.

$filePath = 'logs/temp.txt';
if (file_exists($filePath)) {
    if (unlink($filePath)) {
        echo "Файл успешно удален.";
    } else {
        echo "Не удалось удалить файл.";
    }
}
Сводка отличий: Аспект unset() unlink()
Объект Переменная, элемент массива, свойство объекта. Файл в файловой системе.
Контекст Работа с памятью и областью видимости. Работа с файловой системой (ввод-вывод).
Возвращаемое значение null (не возвращает значимого значения). true в случае успеха, false в случае ошибки.
Последствия Переменная становится неопределенной. Файл физически удаляется с диска.