在程序开发中,如果我们编码不规范,比如调用不存在的变量、语法错误、少了个逗号,这些都会引起系统报错并进行提示,但是今天,突然发现PHP还有这样一个函数,用于自动触发一个报错提示,并且会将报错信息写入php日志,简单直接。

trigger_error

trigger_error — 产生一个用户级别的 error/warning/notice 信息

说明

bool trigger_error ( string $error_msg [, int $error_type = E_USER_NOTICE ] )

用于触发一个用户级别的错误条件,它能结合内置的错误处理器所关联,或者可以使用用户定义的函数作为新的错误处理程序(set_error_handler())。

该函数在你运行出现异常时,需要产生一个特定的响应时非常有用。

参数error_type可选常量可见PHP预定义常量,找出用户级别报错常量如下

  • E_USER_NOTICE
  • E_USER_WARNING
  • E_USER_ERROR
  • E_USER_DEPRECATED

用法示例

在需要的地方写入下面语句


trigger_error('触发DEPRECATED提示', E_USER_DEPRECATED);
trigger_error('触发NOTICE提示', E_USER_NOTICE);
trigger_error('触发WARNING提示', E_USER_WARNING);
trigger_error('触发ERROR提示', E_USER_ERROR);

执行结果

错误日志

[26-Dec-2017 11:50:12 PRC] PHP Deprecated:  触发DEPRECATED提示 in D:\daoyan\localhost\demo.php on line 968
[26-Dec-2017 11:50:12 PRC] PHP Stack trace:
[26-Dec-2017 11:50:12 PRC] PHP 1. {main}() D:\daoyan\localhost\demo.php:0
[26-Dec-2017 11:50:12 PRC] PHP 2. trigger_error() D:\daoyan\localhost\demo.php:968
[26-Dec-2017 11:50:12 PRC] PHP Notice: 触发NOTICE提示 in D:\daoyan\localhost\demo.php on line 969
[26-Dec-2017 11:50:12 PRC] PHP Stack trace:
[26-Dec-2017 11:50:12 PRC] PHP 1. {main}() D:\daoyan\localhost\demo.php:0
[26-Dec-2017 11:50:12 PRC] PHP 2. trigger_error() D:\daoyan\localhost\demo.php:969
[26-Dec-2017 11:50:12 PRC] PHP Warning: 触发WARNING提示 in D:\daoyan\localhost\demo.php on line 970
[26-Dec-2017 11:50:12 PRC] PHP Stack trace:
[26-Dec-2017 11:50:12 PRC] PHP 1. {main}() D:\daoyan\localhost\demo.php:0
[26-Dec-2017 11:50:12 PRC] PHP 2. trigger_error() D:\daoyan\localhost\demo.php:970
[26-Dec-2017 11:50:12 PRC] PHP Fatal error: 触发ERROR提示 in D:\daoyan\localhost\demo.php on line 971
[26-Dec-2017 11:50:12 PRC] PHP Stack trace:
[26-Dec-2017 11:50:12 PRC] PHP 1. {main}() D:\daoyan\localhost\demo.php:0
[26-Dec-2017 11:50:12 PRC] PHP 2. trigger_error() D:\daoyan\localhost\demo.php:971

总结

通过这个函数发现抛异常并将异常消息写入项目日志的错误日志也是可以通过set_error_handler这个函数来自定义的。

参考资料

PHP函数之trigger_error的更多相关文章

  1. php 错误处理函数

    eval()   把子符串当做php 代码执行 // 回调函数function a($b, $c) { echo $b; echo $c; } call_user_func_array('a', ar ...

  2. php函数: set_error_handler

    <?php // $errno, $errstr, $errfile, $errline , 系统自动生成这四个变量的值(如果存在!) function error_catcher($errno ...

  3. PHP user_error() 函数

    定义和用法 user_error() 函数创建用户自定义的错误消息. user_error() 函数用于在用户指定的条件下触发一个错误消息.它可以与内建的错误处理程序一起使用,或者与由 set_err ...

  4. PHP中的错误处理机制

    常见的三种错误: 1.Notice :通知性错误,最小的错误,当发生通知性错误时,会弹出一个提示信息.不会中断代码的执行. 错误代码: #例如Notice: 2.Warning:警告性错误,当发生警告 ...

  5. PHP trigger_error() 函数

    定义和用法 trigger_error() 函数创建用户自定义的错误消息. trigger_error() 函数用于在用户指定的条件下触发一个错误消息.它可以与内建的错误处理程序一起使用,或者与由 s ...

  6. PHP7函数大全(4553个函数)

    转载来自: http://www.infocool.net/kb/PHP/201607/168683.html a 函数 说明 abs 绝对值 acos 反余弦 acosh 反双曲余弦 addcsla ...

  7. PHP错误处理函数set_error_handler()的用法

    定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数. 该函数用于创建运行时期间的用户自己的错误处理方法. 该函数会返回旧的错误处理程序,若失败,则返回 null. 语 ...

  8. PHP 的异常处理、错误处理:error_reporting,try-catch,trigger_error,set_error_handler,set_exception_handler,register_shutdown_function

    一.错误.异常 等级常量表 error:不能在编译期发现的运行期错误,比如试图用 echo 输出一个未赋值的变量,这类问题往往导致程序或逻辑无法继续下去而需要中断: exception:程序执行过程中 ...

  9. PHP 错误与异常 笔记与总结(8)自定义错误处理函数 set_error_handler()

    通过 Set_error_handler() 函数设置用户自定义的错误处理函数. 步骤: ① 创建错误处理函数 ② 设置不同级别调用函数 ③ Set_error_handler() 函数制定接管错误处 ...

随机推荐

  1. BZOJ 2125: 最短路

    2125: 最短路 Time Limit: 1 Sec  Memory Limit: 259 MBSubmit: 756  Solved: 331[Submit][Status][Discuss] D ...

  2. Github Desktop 克隆仓库一直出现“Authentication failed”

    如图所示: 解决方法: 使用ssh链接下载而不是https

  3. CODE FESTIVAL 2017 qual B 题解

    失踪人口回归.撒花\^o^/ 说来真是惭愧,NOI之后就没怎么刷过题,就写了几道集训队作业题,打了几场比赛还烂的不行,atcoder至今是蓝名=.= 以后还是多更一些博客吧,我可不想清华集训的时候就退 ...

  4. 【CF437C】The Child and Toy

    题目大意:给定一个有 N 个点,M 条边的无向图,点有点权,删除一个点就要付出所有与之有联系且没有被删除的点的点权之和的代价,求将所有点删除的最小代价是多少. 题解:从图连通性的角度出发,删除所有点就 ...

  5. 【leetcode】Path Sum2

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...

  6. 在kubernetes集群中创建redis主从多实例

    分类 > 正文 在kubernetes集群中创建redis主从多实例 redis-slave镜像制作 redis-master镜像制作 创建kube的配置文件yaml 继续使用上次实验环境 ht ...

  7. VMware Workstation 12序列号:

    VMware Workstation 12序列号: 5A02H-AU243-TZJ49-GTC7K-3C61N

  8. 小朋友学Linux<一>基础篇

    Linux最基础之<小朋友也能学会Linux>... 1.Linux 知识积累: Linux 英文解释为 Linux is not Unix.学习Linux必须要熟练使用的操作系统是Cen ...

  9. 带你正确的使用List的retainAll方法求交集

    一. retainAll 方法 public boolean retainAll(Collection<?> c) { //调用自己的私有方法 return batchRemove(c, ...

  10. bzoj千题计划187:bzoj1770: [Usaco2009 Nov]lights 燈 (高斯消元解异或方程组+枚举自由元)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1770 a[i][j] 表示i对j有影响 高斯消元解异或方程组 然后dfs枚举自由元确定最优解 #in ...