开发者

Does a custom PHP error handler respect PHP configuration?

I'd be glad if someone could explain the architecture of PHP error handling to me. Some specific questions are:

  • At what stage does the default error handler read the relevant PHP configuration options?
  • Does a custom error handler ignore these options completely?
  • How can I make a custom error handler respect t开发者_如何学Che configuration?


It's pretty much as you suspect. A custom error handler has to probe for all settings itself and react accordingly.

The set_error_handler example first checks the current active error level, and compares it to the first callback parameter (bitwise and) which denotes the current error type:

if (!(error_reporting() & $errno)) {

But to initially test if you actually are supposed to print errors, you would need also:

ini_get("display_errors") or return;

Or to react to more settings and emulate the default error handler, even ini_get("html_errors") etc. Unless you do all that manually, your user error handler would display all errors. They are not filtered, the callback receives everything.


The PHP default error handler is php_error_cb around line 850 here:
http://svn.php.net/viewvc/php/php-src/trunk/main/main.c?revision=309647&view=markup#855

It does a bit more, but also queries the ini registry. That's where error_reporting always saves the current state to.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜