@aopil

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

@set_time_limit(0);

Зачем здесь @ ??
  • Вопрос задан
  • 176 просмотров
Решения вопроса 2
glaphire
@glaphire Куратор тега PHP
PHP developer
Я думаю это для подавления ошибок, которые могли бы потенциально прервать бессрочное выполнение скрипта. Лучше так не делать
Ответ написан
sergiks
@sergiks Куратор тега PHP
♬♬
@ — это Оператор управления ошибками: если он предшествует какому-либо выражению в PHP-коде, любые сообщения об ошибках, генерируемые этим выражением, будут подавлены.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
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.

Если файл не удалился - выкидываем исключение.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега PHP
Это маркер говнокода.
Если видишь этот символ - значит код писал либо дурак, либо нуб, который не понимает, что такое сообщения об ошибках, и для чего они нужны.
Раньше были ситуации, когда этот оператор был оправдан, но сейчас нет ни одной причины его использовать, кроме невежества.
Ответ написан
Ваш ответ на вопрос

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

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