1. namreg - 02 Сентября, 2008 - 15:12:44 - перейти к сообщению
я конечно ламер, но мне не даёт покоя вопрос: зачем перед некоторыми функциями ставится знак @??
2. Вездеход - 02 Сентября, 2008 - 15:32:50 - перейти к сообщению
чтобы если появится ошибка при выполнении этой функции - ошибка никак не отобразилась на дальнейшей работе. т.е. не выводилась.
3. pifon1989 - 02 Сентября, 2008 - 15:36:45 - перейти к сообщению
Собака означает, что если функция кривая или там внутри что-то не так, то ошибка выведена не будет, интерпретатор в этом случае просто пропустит её и пойдёт дальше. Но если от неё хоть что-то дальше зависит, я так делать не рекомендую настоятельно. Это будет равносильно тому что вы закроете глазки ладошками, затопаете ногами и начнёте быстро-бытро говоть "нет-нет-нет-нет-нет-нет-нет-нет-нет нету нету нету нету у меня ошибок"
Реально знак вообще рассчитан на тот случай, если например в вашей сборке пхп нет такой функции (она дополнительная, её скачивают и ставят отдельно), то интерпретатор ругаться не будет и страница не будет изуродована сообщением об ашипке. Если же функция есть, то появится какая-нибудь дополнительная красивая фиговинка, которая может даже по сути и не нужна, но так, просто, как бы.
P.S.: ставить можно не только перед функциями, но и перед переменными и массивами.
Реально знак вообще рассчитан на тот случай, если например в вашей сборке пхп нет такой функции (она дополнительная, её скачивают и ставят отдельно), то интерпретатор ругаться не будет и страница не будет изуродована сообщением об ашипке. Если же функция есть, то появится какая-нибудь дополнительная красивая фиговинка, которая может даже по сути и не нужна, но так, просто, как бы.
P.S.: ставить можно не только перед функциями, но и перед переменными и массивами.
4. Champion - 02 Сентября, 2008 - 15:49:11 - перейти к сообщению
Ко всему выше сказанному. Если, к примеру, разработчик хочет, чтобы в браузер выводилось не стандартое сообщение об ошибке, а свое (написанное далее в обработчике), или вообще без сообщений просто другой ход выполнения программы.
Конечно же, как уже сказали, не надо ставить этот чудо-знак просто, чтоб скрыть ошибку
Конечно же, как уже сказали, не надо ставить этот чудо-знак просто, чтоб скрыть ошибку
5. Вездеход - 02 Сентября, 2008 - 15:50:26 - перейти к сообщению
не согласен... если есть в скрипте мелкая функция выполнение которой не обязательно но желательно - то удобно использовать собачку...
6. pifon1989 - 02 Сентября, 2008 - 16:00:00 - перейти к сообщению
Вездеход пишет:
не согласен... если есть в скрипте мелкая функция выполнение которой не обязательно но желательно - то удобно использовать собачку...
бгг
pifon1989 пишет:
Если же функция есть, то появится какая-нибудь дополнительная красивая фиговинка, которая может даже по сути и не нужна, но так, просто, как бы.
(Добавление)
P.S.: Сорри если что, но говорим на одном языке и друг друга не слышим
7. Champion - 02 Сентября, 2008 - 16:03:29 - перейти к сообщению
Вездеход пишет:
не согласен... если есть в скрипте мелкая функция выполнение которой не обязательно но желательно - то удобно использовать собачку...
Не совсем понял. Функция выполнится в любом случае. Она собычку не боится). Собачка только ее вывод съест, чтоб они пользователя не пугали.
А я имел в виду, что например у нас в строке выполняется запрос. С ошибкой. Без собачки будет warning:dynamic sql error..... А можно, скажем, если запрос не выполнился, вывести что-нибудь свое, понятное пользователю. Т.е. свое и так можно вывести, он чтоб перед этим не вывилась стд. ошибка, ее надо скушать собачкой
(Добавление)
а, понял, что ты имеешь в виду)
(Добавление)
pifon1989 пишет:
Всем любителям Pascal посвящается:
function writeln($text) {echo '<br>'.$text};
function writeln($text) {echo '<br>'.$text};
Классно!
8. EuGen - 02 Сентября, 2008 - 17:37:33 - перейти к сообщению
"@" лишь подавляет весь вывод, генерируемый вызовом функции. К такому выводу относятся и ошибки уровня E_ERROR
Но это не значит, что если произойдет фатальная ошибка, скрипт продолжит свое выполнение.
К примеру,
Но это не значит, что если произойдет фатальная ошибка, скрипт продолжит свое выполнение.
К примеру,
Выведет
CODE (text):
скопировать код в буфер обмена
скопировать код в буфер обмена
- ###
- Fatal error: Call to undefined function no_function()
в то время как: