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

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

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
который мы недавно рассматри- 
вали. Рекомендую первой строкой сценария ставить вызов: 
Error_Reporting(1+2+4+8); 

Часть IV. Стандартные функции PHP 336 
Да, поначалу будут очень раздражать "мелкие" сообщения типа "использование не- 
инициализированной переменной". Практика показывает, что эти предупреждения на 
самом деле свидетельствуют (чаще всего) о возможной логической ошибке в про- 
грамме, и что при их отключении может возникнуть ситуация, когда программу 
будет 
очень трудно отладить. 
Однажды я просидел несколько часов, тщетно пытаясь найти ошибку в сцена- 
рии (он работал, но неправильно). После того как я включил полный контроль 
ошибок, все выяснилось в течение 5 минут. Вот вам и выигрыш по времени... 
Оператор отключения ошибок 
Есть и еще один аргумент за то, чтобы всегда использовать полный контроль 
ошибок. 
Это — существование в PHP оператора @. Если этот оператор поставить перед любым 

выражением, то все ошибки, которые там возникнут, будут проигнорированы. На- 
пример: 
if(!@filemtime("notextst.txt")) 
echo "Файла не существует!"; 
Попробуйте убрать оператор @ — тут же получите сообщение: "Файл не найден", а 
только после этого — вывод оператора echo. Однако с оператором @ предупреждение 

будет подавлено, что нам и требовалось. 
Кстати, в приведенном примере, возможно, несколько логичнее было бы воспользо- 
ваться функцией file_exists(), которая как раз и предназначена для определения 
факта существования файла, но в некоторых ситуациях это нам не подойдет. Напри- 

мер: 
// Обновить файл, если его не существует или он очень старый 
if(!file_exists($fname) || filemtime($fname) 
Но, согласитесь, следующий код куда элегантнее: 
 
method=post>
Старайтесь чаще пользоваться оператором @ и реже — установкой слабого контроля ошибок. Принудительное завершение программы void exit() Эта функция немедленно завершает работу сценария. Из нее никогда не происходит возврата. Перед окончанием программы вызываются функции-финализаторы, кото- рые скоро будут нами рассмотрены. void die(string $message) Функция делает почти то же самое, что и exit(), только перед завершением работы выводит строку, заданную в параметре $message. Чаще всего ее применяют, если нужно напечатать сообщение об ошибке и аварийно завершить программу. Полезным примером применения die() может служить такой код: $filename='/path/to/data-file'; $file=fopen($filename, 'r') or die("не могу открыть файл $filename!"); Здесь мы ориентируемся на специфику оператора or — "выполнять" второй операнд только тогда, когда первый "ложен". Мы уже встречались с этим приемом в главе, посвященной работе с файлами. Заметьте, что оператор || здесь применять нельзя — он имеет более высокий приоритет, чем =. С использованием || последний пример
 
<<-[Весь Текст]
Страница: из 287
 <<-