- •1.3. Комментарии в рнр-сценариях
- •2. Переменные и типы данных
- •3. Константы
- •4. Операции с переменными
- •5. Выражения и операции
- •5.1. Понятие «выражение» в php
- •5.2. Операции в php
- •5.3. Строки и строковые выражения
- •6. Ссылки
- •7. Основные конструкции языка
- •7.1. Условный оператор
- •7.2. Циклы
- •7.3. Инструкция switch-case (конструкция выбора)
- •8. Собираем один скрипт из нескольких отдельных скриптов
- •8.1. Инструкции require
- •8.2. Инструкции include
- •8.3. Особенности использования include и require
- •8.4. Инструкции однократного включения include_once и require_once
- •9. Обработка ошибок
9. Обработка ошибок
Интерпретатор PHP позволяет программисту определить, какие сообщения об ошибках нужно выводить, а какие — нет. Пока вы отлаживаете программу, я рекомендую выводить все сообщения об ошибках и все предупреждения, а потом, когда программа нормально работает, выводить только сообщения об ошибках.
Параметр error_reporting в файле конфигурации PHP — /etc/php, ini — позволяет определить степень обработки и протоколирования ошибок. Возможные значения:
E__ALL — все ошибки и предупреждения;
E_ERROR — фатальные ошибки во время выполнения программы (например, невозможно открыть файл);
E_WARNING — предупрежения времени выполнения (нефатальные ошибки);
E_PARSE — синтаксические ошибки;
E_NOTICE — замечания времени выполнения (например, сообщение о том, что переменная неинициализирована).
Кроме вышеперечисленных возможны и другие значения, но они не столь важны. Я рекомендую включить оповещения обо всех ошибках и предупреждениях: error_reporting = E ALL
Когда программа отлажена, можно отключить замечания времени выполнения. Для отключения какого-нибудь вида ошибок используется тильда: error_reporting = E_ALL & ~E_NOTICE
Если вы не можете отредактировать файл php. mi (например, у вас нет на это прав), можно использовать вызов функции error_reporting(), например, error_reporting(E_ALL) ;
Следует учитывать, что действие директивы error_reporting в файле конфигурации распространяется на все ваши сценарии, а вызов функции error_reporting() — только на текущий сценарий.
Существует еще один способ избежать вывода сообщения об ошибке — это использование оператора @. Если этот оператор поставить перед каким-либо выражением, то все ошибки, которые в этом выражении возникнут, будут проигнорированы.
Например, если вы не хотите, чтобы пользователь видел сообщение об ошибке какой-нибудь стандартной функции, нужно указать оператор @ перед именем функции, например: @mysql_query("create table tbl (no inn, info text)");