Удаление кук в PHP

В PHP нет встроенного механизма для удаления кук. Поэтому удаляют куки хитрым способом - устанавливая время 'смерти' куки на текущий момент:

<?php setcookie('test', '', time()); ?>

Удаление куки приведет к изменению $_COOKIE только после перезагрузки страницы:

<?php setcookie('test', '', time()); var_dump($_COOKIE['test']); // первый раз выведет значение куки ?>

Удалите какую-нибудь куку. Обновите страницу и убедитесь, что она удалилась.

Хитрый прием

Для того, чтобы при удалении куки сразу менялся $_COOKIE можно использовать уже известный нам хитрый прием:

<?php setcookie('test', '', time()); unset($_COOKIE['test']); var_dump($_COOKIE['test']); ?>

Добавим условие, чтобы каждый раз не удалять уже удаленную куку:

<?php if (isset($_COOKIE['test'])) { setcookie('test', '', time()); unset($_COOKIE['test']); } var_dump($_COOKIE['test']); // удалена ?>

Удалите какую-нибудь куку с помощью хитрого приема. Убедитесь, что она будет удалена сразу.