Консультация № 48510
08.07.2006, 01:24
0.00 руб.
0 5 4
Что означает знак ‘@‘ перед некоторыми функциями и переменными?

Например: @fsockopen(‘site.ru‘, 80);

Обсуждение

Неизвестный
08.07.2006, 01:50
общий
это ответ
Здравствуйте, Alexorg!

Это означает, что Вы запрещаете php обрабатывать ошибки, которые могут возникнуть при выполнении помеченных таким образом функций. Обычно используется если Вы хотите обрабатывать ошибки сами.

Например, функция открытия файла:
fopen("file.txt","r");
если вдруг такого файла не существует, либо произойдет ошибка чтения файла, тогда php выведет на экран ошибку, что не удалось открыть файл. Возможно Вам этого не надо, тогда используйте @ перед названием функции и обрабатывайте эту ошибку сами, либо не обрабатывайте вообще.

С уважением,
Антон Цепковский.
Неизвестный
08.07.2006, 10:21
общий
это ответ
Здравствуйте, Alexorg!
@ подавляет сообщение об ошибке. Обычно используют при проверке переменных отправленных с формы: if (@$_REQUEST[‘anything‘]). Никогда не ставьте @ перед include и require, т.к. @ будет подавлять все ошибки, кот. будут во включаемом файле.
Неизвестный
08.07.2006, 11:42
общий
<a href=http://rusfaq.ru?Step=info&Action=Question&ID=48268>http://rusfaq.ru?Step=info&Action=Question&ID=48268</a>
Неизвестный
10.07.2006, 10:33
общий
это ответ
Здравствуйте, Alexorg!
запрещает функции выдавать в браузер сообщение в случае, если произошла ошибка.
Неизвестный
10.07.2006, 11:26
общий
это ответ
Здравствуйте, Alexorg!
Если в php.ini включена выдача предупреждений/ошибок и случается ситуация когда такая ошибка возникает, то PHP выводит свой текст (такая-то ошибка произошта в таком-то скрипте, на такой-то строчке). Чтобы не получать этих сообщений в местах с заранее известными возможными ошибками и пишется символ @. Таким образом в примере который Вы написали PHP будет молчать если 80 порт на хосте site.ru открыть не удастся
Форма ответа