Во-первых, ваш код выглядит правильно, как представлено. Как указано в документации PHP для setcookie()
:
Если установлено значение 0 или опущено, срок действия файла cookie истекает в конце сеанса (при закрытии браузера).
Это известно как "сеансовый cookie" и должно быть удалено браузером при закрытии.
Рассматривая это немного, кажется, что Chrome и Firefox ведут себя немного по-разному, в зависимости от того, настроены ли они для запоминания открытых вкладок и окон при запуске, и это специально.
Вы упомянули, что используете Chrome - если Chrome настроен на «Продолжить с того места, на котором остановился» при запуске, куки-файлы сеанса могут не удаляться при закрытии вкладки и перезапуске браузера.
Я могу убедиться, что файл cookie удален при закрытии браузера, когда я выбираю «Открыть страницу новой вкладки».
То же самое с Firefox - есть дополнительная информация с некоторыми подробностями о том, как настроить это на форуме поддержки Mozilla.
Короче говоря, возможно, вы не сможете полагаться на Chrome или Firefox, чтобы гарантировать удаление файла cookie сеанса.