个人博客
专注IT梦想的地方

PHP之自定义错误触发器

上一篇文章讲了《PHP之自定义错误处理器》,那么今天分享的是自定义错误触发器,那么触发器和处理器有什么关系和区别呢?接下来慢慢和大家分享。

首先我们来解释一下什么是触发器,从W3school上定义为在脚本中用户输入数据的位置,当用户的输入无效时触发的错误我们就可以称为错误触发器,那么在 PHP 中,这个任务由 trigger_error() 函数来完成的。

例如:

<?php
$page = 100;
if ($page>200) {
    //调用触发器
    trigger_error("你输入的页数过大");
    exit();
}
?>

运行后显示:

Notice: 你输入的页数过大 in D:webtesterror3.php on line 5

那么同样,我们依然可以自定他的触发器显示错误。
我们也是按错之前一样的步骤,自定义一个错误显示函数,如下:
function my_error($errno,$errmsg){
    echo "错误号:".$errno."<br>";
    echo "错误信息:".$errmsg;
}

然后同样通过set_error_handler()函数来重写掉默认的错误触发器显示,如下:

set_error_handler("my_error",E_USER_WARNING);

当然,这里的第二个参数建议填写以E_USER开头的错误类型,其中包含以下几种类型选择:

  • E_USER_ERROR – 致命的用户生成的 run-time 错误。错误无法恢复。脚本执行被中断。
  • E_USER_WARNING – 非致命的用户生成的 run-time 警告。脚本执行不被中断。
  • E_USER_NOTICE – 默认。用户生成的 run-time 通知。脚本发现了可能的错误,也有可能在脚本运行正常时发生。

而同事,当你选择了其中的一种错误类型后,我们需要在之前的程序错误触发器中增加一个同等类型的错误类型,否则不会正常运行自定义错误触发器显示,所以添加trigger_error()函数的第二个参数错误类型同样为set_error_handler()函数的错误类型,即E_USER_ERROR、E_USER_WARNING或者E_USER_NOTICE,如下:

<?php
$page = 100;
if ($page>200) {
    //调用触发器
    trigger_error("你输入的页数过大",E_USER_WARNING);
    exit();
}
?>

此时执行编写的程序页面显示如下:

错误号:512
错误信息:你输入的页数过大

然后大家再返回到之前分享的《PHP之自定义错误处理器》进行比较,你就会很清晰的知道他们的区别了。

好了,今天就分享这个,希望大家继续在喜欢的行业路上坚定不移的走下去,总有一天你会成就自己的,无论什么情况。

赞(0) 打赏
未经允许,不得转载本站任何文章:智言个人博客 » PHP之自定义错误触发器

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏