|
||||||||||
Сообщение об ошибкеИзменения конфигурацииВ PHP 3 уровень серьёзности ошибки устанавливался как простое цифровое значение, образуемое суммированием чисел, относящихся к ошибкам разных уровней. Обычно это были значения 15 для сообщения обо всех ошибках и 7 для простых уведомляющих сообщений. В PHP 4 имеется большой набор уровней ошибок и предупреждений, а также разборщик конфигурации, который позволяет теперь использовать символьные константы для установки нужного поведения. Уровни сообщений теперь должны конфигурироваться явно с отделением уровней
предупреждений, которые не должны генерировать сообщения об ошибках, x-ируя их из символьной константы
E_ALL. Звучит сложно? Хорошо, скажем, вы хотите, чтобы система сообщений об ошибках
выводила всё, кроме предупреждений простого стиля, которые категоризированы символьной константой
E_NOTICE. Затем вы хотите поместить в ваш php.ini следующее: error_reporting = E_ALL & ~ ( E_NOTICE ).
Если вы хотите подавить также и предупреждения, вы добавляете в
соответствующую константу скобки и используете бинарную операцию '|':
Дополнительные предупрежденияВ большом количестве существующего кода PHP 3 используются конструкции языка, которые должны рассматриваться как очень плохой стиль программирования, поскольку работа этого кода может быть легко нарушена изменениями в других местах. PHP 4 ввёл большое количество уведомляющих сообщений в ситуациях, где PHP 3 этого не делал. Это легко исправить, отключив сообщения E_NOTICE, но обычно лучше скорректировать код. Наиболее общий случай вывода уведомлений теперь - это использование незакавыченных строковых констант в качестве индексов массивов. PHP 3 и 4 не интерпретируют эти строки, если не известно ключевое слово или константа с этим именем, но если константа с этим именем была определена где-нибудь ещё в коде, это может нарушить работу вашего скрипта. Это может даже представлять опасность для защиты, если взломщик переопределяет строковые константы способом, когда скрипты дают права доступа, которые не предполагались. Так, PHP 4 будет теперь предупреждать вас об использовании незакавыченной строковой константы, как, например, в $_SERVER[REQUEST_METHOD]. Изменение этого на $_SERVER['REQUEST_METHOD'] осчастливит разборщик и значительно улучшит стиль и повысит безопасность вашего кода. Другое, о чём сейчас также сообщает PHP 4, это использование неинициализированных переменных или элементов массива. |
||||||||||
|