fopen с/без перед ним

Я видел примеры кода, которые используют @ прежде fopen как в

$fh = @fopen($myFile, 'w');

Каково значение этого @?

11
задан brett 28 March 2010 в 02:45
поделиться

3 ответа

Подавляет ошибки, которые может отображать выражение.

Подробнее об этом можно прочитать здесь .

Пример:

file_get_contents('file_does_not_exist'); //this shows an error

@file_get_contents('file_does_not_exist'); //this does not
14
ответ дан 3 December 2019 в 04:52
поделиться

Использование @ всегда является плохой практикой. Он подавляет сообщение об ошибке, если оно возникает, в то время как сообщения об ошибках чрезвычайно полезны для программиста, и подавление этого является самоубийством. Судьба PHP - это использовать в основном не программисты, а случайные пользователи, которые понятия не имеют. Вы получили этот код от одного из последних. Так что лучше избавиться от всех @ , чтобы вы могли увидеть, что произошло, и исправить ошибку.
Обратите внимание, что каждое сообщение об ошибке имеет особое значение и объясняет, в чем проблема. Например, это может быть проблема с разрешениями файловой системы или настройка PHP OPEN_BASEDIR для предотвращения открытия файла. Итак, сообщение об ошибке подскажет, что делать. Сообщения об ошибках - это хорошо, а @ - зло.

2
ответ дан 3 December 2019 в 04:52
поделиться

Это символ контроля ошибок PHP.

PHP поддерживает один оператор контроля ошибок: знак at (@). При добавлении к выражению в PHP любые сообщения об ошибках, которые могут быть сгенерированы этим выражением, будут проигнорированы .

Подробнее здесь .

7
ответ дан 3 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: