Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
 логических выражений, содержащих такие опера- 
ции, идет всегда слева направо, при этом, если результат уже очевиден (например,
 
false&&что-то всегда дает false), то вычисления обрываются, даже если в выра- 
жении присутствуют вызовы функций. Например, в операторе 
$logic = 0&&(time()>100); 
стандартная функция time() никогда не будет вызвана. 
Будьте осторожны с логическими операциями — не забывайте про удваивание сим- 
вола. Обратите внимание, что, например, | и || — два совершенно разных операто- 

ра, один из которых может потенциально возвращать любое число, а второй — толь- 

ко false и true. 
Оператор отключения 
предупреждений 
Выдаче ясных и адекватных сообщений о возникших во время выполнения сценария 
ошибках разработчики PHP заслуженно уделили особое внимание. Наверное, вы уже 
запускали несколько простых PHP-программ из браузера и имели удовольствие ви-

Часть III. Основы языка PHP 140 
деть, что все ошибки выводятся прямо в окно браузера вместе с указанием, на 
какой 
строке и в каком файле они обнаружены. Остается только в редакторе найти нужную 

строку и исправить ошибку. Удобно, не правда ли? 
К сожалению, PHP — чуть ли не первый язык, который выводит предупрежде- 
ния в браузер, а не в файлы журналов. Если вы работали некоторое время с 
таким языком, как Perl, то, наверное, уже успели устать от бесконечных вере- 
ниц "500-х ошибок", которые Perl выдает при малейшей оплошности в сцена- 
рии. Теперь можете вздохнуть с облегчением: PHP никогда не выдаст сообще- 
ние о 500-й ошибке, что бы ни произошло. 
PHP устроен так, что ранжирует ошибки и предупреждения по четырем основным 
"уровням серьезности". Вы можете настроить его так, чтобы он выдавал только 
ошибки тех уровней, которые вас интересуют, игнорируя остальные (то есть, не 
вы- 
водя предупреждений о них). Впрочем, я рекомендую всегда включать контроль 
ошибок по-максимуму, т. к. это может существенно упростить отладку программ. 
Допустим, мы так и поступили, и теперь PHP "ругается" даже на незначительные 
ошибки. 
Однако не всегда это бывает удобно. Более того, иногда предупреждения со 
стороны 
интерпретатора просто недопустимы. Рассмотрим, например, такой сценарий (лис- 
тинг 7.4): 
Листинг 7.4. Навязчивые предупреждения 
Мы хотели сделать так, чтобы при нажатии на кнопку выдавалось соответствующее сообщение, но вот беда: теперь при первом запуске сценария PHP выдаст предупреж- дение о том, что "переменная $doCliсk не инициализирована". Ну не отключать же из-за такой мелочи контроль ошибок во всем сценарии, не правда ли? Как бы нам временно блокировать проверку ошибок, чтобы она не действовала только в одном месте, не влияя на остальной код? Вот для этого и существует оператор @ (отключение ошибок). Если разместить дан- ный оператор перед любым выражением (возможно, включающим вызовы функций, генерирующих предупреждения), то сообщения об ошибках в этом выражении будут подавлены и в окне браузера не отображены. Глава 7. Переменные, константы, выражения 141 На самом деле текст предупреждения сохраняется в переменной PHP $php_errormsg, которая может быть в будущем проанализирована. Эта воз- можность доступна, если в настройках PHP включен параметр track_errors (по умолчанию он как раз и установлен в yes). Вот теперь мы можем переписать наш пример, грамотно отключив надоедливое пре- дупреждение (листинг 7.5). Листинг 7.5. Отключение навязчивого предупреждения
Как можно заметить, листинг 7.5 отличается от лис
 
<<-[Весь Текст]
Страница: из 287
 <<-