открыть с / без @ перед этим - PullRequest
9 голосов
/ 28 марта 2010

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

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

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

Ответы [ 3 ]

12 голосов
/ 28 марта 2010

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

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

Пример:

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

@file_get_contents('file_does_not_exist'); //this does not
6 голосов
/ 28 марта 2010

Его код контроля ошибок PHP.

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

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

2 голосов
/ 28 марта 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...