Я думаю об использовании set_error_handler (), что функциональность в PHP обрабатывает большинство ошибок PHP в одном месте (регистрирующий их в файл). Из документации похоже, могу ли я передать имя функции к set_error_handler (). Хороший! Но я сделал, чтобы ErrorManager возразил, который имеет хороший метод входа. Я хочу использовать тот ErrorManager, возражают и пишут специальный метод обработчика ошибок для него и имеют вызов set_error_handler что ErrorManager.
Я мог просто сделать что-то как
set_error_handler($this->customErrorHandler);
? Или это было бы недопустимо?
Передача в массиве объекта и имени вызываемого метода:
set_error_handler(array($this, 'customErrorHandler'));
set_error_handler()
принимает обратный вызов calllback:
Некоторые функции, такие как call_user_func() или usort() принимает заданный пользователем функция обратного вызова в качестве параметра. Функции обратного вызова могут быть не только простые функции, но и объект методы, в том числе статический класс методы.
Функция PHP передается по ее имени. как веревка. Любые встроенные или может быть использована пользовательская функция, за исключением таких языковых конструкций, как: array(), echo(), empty(), eval(), exit(), isset(), list(), print() или unset().
Метод инстанцированного объекта это переданный в виде массива, содержащего объект в индексе 0 и имя метода в индексе 1.
Статические методы класса могут быть также пройденный без конкретизации предмета этого класса, пройдя класс имя вместо объекта в индексе 0.
Помимо обычного пользовательского определения функция, create_function() может также использоваться для создания анонимного функция обратного вызова. Начиная с версии PHP 5.3.0 она можно также пройти процедуру закрытия параметр обратного вызова.
(ударение добавлено)
в PHP 5. 3 вы могли бы сделать это в закрытом виде:
$that = $this;
set_error_handler( function() use ($that) { $that->customErrorHandler(); } );
set_error_handler
принимает в качестве параметра обратный вызов
.
Цитируя эту страницу :
Метод инстанцированного объекта - это переданный в виде массива, содержащего объект в индексе 0 и имя метода в индексе 1.
В вашем случае, вам нужен обратный вызов, соответствующий методу (Called 'customErrorHandler
') объекта (здесь, $this
); тогда обратный вызов будет :
array($this, 'customErrorHandler')
Таким образом, вы бы использовали эту часть кода :
set_error_handler(array($this, 'customErrorHandler'));