который мы недавно рассматри-
вали. Рекомендую первой строкой сценария ставить вызов:
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)