Назад | Перейти на главную страницу

Скрыть STRICT-ошибки в PHP 5.4

Сегодня я обновился с PHP 5.3 до PHP 5.4. Теперь мой скрипт отображает множество сообщений об ошибках. Как их скрыть без использования error_reporting(0); внутри файла php?

Я использую это:

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT

В PHP 5.4 E_STRICT стал частью E_ALL - (документация). Я бы порекомендовал отключить директиву для отображения ошибок и вместо этого регистрировать ошибки, это можно сделать, установив следующее в вашем php.ini:

display_errors = off
log_errors = on
error_log = /path/to/logs/php_error.log

Если вы не хотите идти по этому пути и по-прежнему хотите отображать ошибки и просто имитировать функциональность PHP <5.4, вам лучше всего сделать что-то вроде этого:

error_reporting = E_ERROR | E_WARNING | E_PARSE

Также следует упомянуть, что разные люди сообщали о невозможности исключить E_STRICT из E_ALL таким способом, который вы пытались сделать в качестве ошибки, поэтому это может измениться в более позднем выпуске, чтобы обеспечить функциональность, к которой вы привыкли.

error_reporting = (E_ALL ^ E_STRICT)

может это помочь?

Обычные методы предназначены для вызова из ЭКЗАМЕНА класса (объекта).

Примерно так: $ object = new Class (); $ объект-> функция ();

Однако вы называете это прямо из класса.

Вот так: class :: function ();

Вот для чего нужны СТАТИЧЕСКИЕ методы.

измените это: публичная функция absoluteURI ()

Для этого: общедоступная статическая функция absoluteURI ()

Я рекомендую вам всегда кодировать строго, поэтому НЕ отключайте строгие ошибки. Зачем? Ваш пример это доказывает. Вы использовали обычный метод, чтобы сделать то, чего он делать не должен.

Так что вместо того, чтобы отключать строгие ошибки, внесите эти простые мелкие исправления в свой код :) Я обещаю, что оно того стоит.

Хороший программист всегда открыт для более аккуратного программирования и не торопится, чтобы его изучить.