Покинул форум
Сообщений всего: 8
Дата рег-ции: Сент. 2008
Помог: 0 раз(а)
я конечно ламер, но мне не даёт покоя вопрос: зачем перед некоторыми функциями ставится знак @??
Вездеход
Отправлено: 02 Сентября, 2008 - 15:32:50
Частый посетитель
Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
чтобы если появится ошибка при выполнении этой функции - ошибка никак не отобразилась на дальнейшей работе. т.е. не выводилась.
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
pifon1989
Отправлено: 02 Сентября, 2008 - 15:36:45
Частый гость
Покинул форум
Сообщений всего: 196
Дата рег-ции: Май 2008
Помог: 0 раз(а)
Собака означает, что если функция кривая или там внутри что-то не так, то ошибка выведена не будет, интерпретатор в этом случае просто пропустит её и пойдёт дальше. Но если от неё хоть что-то дальше зависит, я так делать не рекомендую настоятельно. Это будет равносильно тому что вы закроете глазки ладошками, затопаете ногами и начнёте быстро-бытро говоть "нет-нет-нет-нет-нет-нет-нет-нет-нет нету нету нету нету у меня ошибок"
Реально знак вообще рассчитан на тот случай, если например в вашей сборке пхп нет такой функции (она дополнительная, её скачивают и ставят отдельно), то интерпретатор ругаться не будет и страница не будет изуродована сообщением об ашипке. Если же функция есть, то появится какая-нибудь дополнительная красивая фиговинка, которая может даже по сути и не нужна, но так, просто, как бы.
P.S.: ставить можно не только перед функциями, но и перед переменными и массивами.
----- Ассемблер для Чайников
Всем любителям Pascal посвящается:
function writeln($text) {echo '<br>'.$text};
Champion
Отправлено: 02 Сентября, 2008 - 15:49:11
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Ко всему выше сказанному. Если, к примеру, разработчик хочет, чтобы в браузер выводилось не стандартое сообщение об ошибке, а свое (написанное далее в обработчике), или вообще без сообщений просто другой ход выполнения программы.
Конечно же, как уже сказали, не надо ставить этот чудо-знак просто, чтоб скрыть ошибку
Вездеход
Отправлено: 02 Сентября, 2008 - 15:50:26
Частый посетитель
Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
не согласен... если есть в скрипте мелкая функция выполнение которой не обязательно но желательно - то удобно использовать собачку...
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
pifon1989
Отправлено: 02 Сентября, 2008 - 16:00:00
Частый гость
Покинул форум
Сообщений всего: 196
Дата рег-ции: Май 2008
Помог: 0 раз(а)
Вездеход пишет:
не согласен... если есть в скрипте мелкая функция выполнение которой не обязательно но желательно - то удобно использовать собачку...
бгг
pifon1989 пишет:
Если же функция есть, то появится какая-нибудь дополнительная красивая фиговинка, которая может даже по сути и не нужна, но так, просто, как бы.
(Добавление)
P.S.: Сорри если что, но говорим на одном языке и друг друга не слышим
----- Ассемблер для Чайников
Всем любителям Pascal посвящается:
function writeln($text) {echo '<br>'.$text};
Champion
Отправлено: 02 Сентября, 2008 - 16:03:29
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Вездеход пишет:
не согласен... если есть в скрипте мелкая функция выполнение которой не обязательно но желательно - то удобно использовать собачку...
Не совсем понял. Функция выполнится в любом случае. Она собычку не боится). Собачка только ее вывод съест, чтоб они пользователя не пугали.
А я имел в виду, что например у нас в строке выполняется запрос. С ошибкой. Без собачки будет warning:dynamic sql error..... А можно, скажем, если запрос не выполнился, вывести что-нибудь свое, понятное пользователю. Т.е. свое и так можно вывести, он чтоб перед этим не вывилась стд. ошибка, ее надо скушать собачкой (Добавление)
а, понял, что ты имеешь в виду) (Добавление)
pifon1989 пишет:
Всем любителям Pascal посвящается:
function writeln($text) {echo '<br>'.$text};
Классно!
EuGen
Отправлено: 02 Сентября, 2008 - 17:37:33
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
"@" лишь подавляет весь вывод, генерируемый вызовом функции. К такому выводу относятся и ошибки уровня E_ERROR
Но это не значит, что если произойдет фатальная ошибка, скрипт продолжит свое выполнение.
К примеру,
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.