Авторский знак. Seosait21.ru Есть у человека надежда. Пока не поздно. Вгрызайся и изучай.
Нажимай и поддержи.

Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30


Чувашия-это моя Россия

Операции в PHP.

(продолжение)

Язык РНР никогда не выдаст сообщение о 500-й ошибке, что бы ни произошло. Язык РНР устроен так, что бы ошибки в программе классифицировать и располагать по порядку, при том всегда выводить предупреждения по четырем основным "уровням серьезности". Вы можете настроить его, чтобы он выдавал только ошибки тех уровней, которые Вас интересуют, игнорируя остальные, хотя зачем Вам при тестировании программ надо. Ну, пусть Вы немного времени потеряете в прочтении кодов ошибок, но,на экране будет виднов все ошибки. В рекомендации написано, чтобы включать контроль ошибок по максимуму, т.к. существенно упростить отладку программ. Однако не в любой ситуации это бывает удобно при создании сайта.

Как временно блокировать проверку ошибок, чтобы она не действовала только в одном месте, не влияя на остальной код при создании сайта? Вот для этого и существует оператор @ (отключение предупреждений). Если разместить данный оператор перед любым выражением, то сообщения об ошибках в данном выражении будут подавлены и в окне браузера не отображены.

На самом деле текст предупреждения сохраняется в переменной РНР $php_errormsg, которая может быть в будущем проанализирована и исправлено, то есть не теряется ничего бесследно. Эта возможность доступна, если в настройках РНР включен параметр track errors (по умолчанию он как раз и установлен в значение yes). Можно включать максимальный контроль ошибок в настройках РНР, а в спорных местах применять оператор @ ( оператор отключения предупреждений - решать Вам). Это просто, красиво, удобно - кому как! К тому же способно сильно облегчить отладку сценариев, не работающих по загадочным причинам при создании сайта.

Оператор @ — для тех, кто свободно владеет языком PHP и набил руку уже в написании програм. Оператор @ - собачку программист включает, когда ему лень писать много кода. Часто его использование позволяет создавать, более лаконичные и понятные программы. Тем не менее в законченных скриптах рекомендуется по возможности избегать оператора @. В РНР всегда выводит сообщения об ошибках в браузер, хотя данное утверждение не совсем соответствует действительности: такое поведение задействуется лишь при включенной директиве dispiay errors, задающейся в файле php.ini. По умолчанию она включена.

Кроме того, интерпретатор имеет еще один настраиваемый режим работы, заставляющий его печатать ошибки не в браузер, а в файлы журнала сервера. Этот режим называется log_errors и задается одноименной директивой в файле php.ini. По умолчанию он отключен. Вся проблема с оператором @ заключается в том, что он подавляет лишь вывод сообщений об ошибках в браузер, но не в журналы сервера. Таким образом, если рассчитываете на включение log_errors, использование оператора @ нежелательно — иначе файлы журнала сервера быстро засорятся бессмысленными сообщениями.

Действует правило: чем проще выражение, в котором отключаете предупреждения, тем лучше. А потому никогда - не применяйте оператор @ в следующих случаях:

 
                  -перед директивой include (включение другого файла с кодом);
                  
                  -перед вызовом собственных (не встроенных в РНР) функций;
                  
                  -перед функцией eval() (запуск строкового выражения как программы на РНР).

                  -должны применять @ только в одном случае — когда надо трактовать 
                    необъявленную переменную (или элемент массива) как "пустую" величину,
                    заблокировав выдачу предупреждений в большом участке кода.
                   

seosait21.ru
HTML

seosait21.ru
CSS

seosait21.ru
Web-диз.
HTML ссылка CSS ссылка ...

seosait21.ru
JavaScript

seosait21.ru
PHP

seosait21.ru
JQuery
JavaScript ссылка PHP ссылка JQuery ссылка

seosait21.ru
SEO.

seosait21.ru
MySQL

seosait21.ru
XML
... ... ...

обратно на главную     назад    дальше     вперед

ПОНРАВИЛОСЬ?
ПОДЕЛИСЬ с ДРУЗЬЯМИ: