Ошибка:
Предупреждение: session_destroy (): сбой уничтожения объекта сеанса
Это довольно тривиально, никакой сеанс не был запущен объект был завершен, поэтому вы не можете его уничтожить.
Оператор @
не всегда активен, например, с функциями сообщения об ошибках.
Edit:
1) Что вызывает эту ошибку?
Эта ошибка обычно возникает, когда PHP пытается удалить файл сеанса, но не может его найти.
В вашем случае с session_destroy
есть только одно место в PHP , которое вызывает это. Именно тогда session.save_handler
(см. Также session_set_save_handler
) возвращает FALSE
для действия destroy . Это может зависеть от того, какой тип сохранения вы используете, по умолчанию используется files . При этом, если настройка session.save_path
неверна (например, недоступен каталог), это может вызвать такую ошибку.
2) Почему "@" не подавляет ошибку?
Это зависит от того, как создается вывод, и от конфигурации PHP. @
не всегда работает. Например, обратные вызовы, зарегистрированные с set_error_handler
, все равно будут получать эти сообщения.