@aopil

Значение @ в php?

@set_time_limit(0);

Зачем здесь @ ??
  • Вопрос задан
  • 214 просмотров
Решения вопроса 2
glaphire
@glaphire Куратор тега PHP
PHP developer
Я думаю это для подавления ошибок, которые могли бы потенциально прервать бессрочное выполнение скрипта. Лучше так не делать
Ответ написан
sergiks
@sergiks Куратор тега PHP
♬♬
@ — это Оператор управления ошибками: если он предшествует какому-либо выражению в PHP-коде, любые сообщения об ошибках, генерируемые этим выражением, будут подавлены.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Это маркер говнокода.
Если видишь этот символ - значит код писал либо дурак, либо нуб, который не понимает, что такое сообщения об ошибках, и для чего они нужны.
Раньше были ситуации, когда этот оператор был оправдан, но сейчас нет ни одной причины его использовать, кроме невежества.
Ответ написан
php666
@php666
PHP-макака
Не соглашусь с комментаторами выше. Иногда есть причины для подавления ошибки.
Вот пример:

$file = '/g/g/g/g/';
if (!@unlink($file) && file_exists($file)) {
    throw new \RuntimeException('Failed to delete file ' . $file);
}


Тут unlink на несуществующем файле приведет к
Warning: unlink(/g/g/g/g/): No such file or directory in

ошибка нам не нужна, мы её подавляем. Следующий этап - проверка, удалился ли реально файл, вне зависимости от того, что нам вернёт unlink.

Если файл не удалился - выкидываем исключение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы