在程序开发中,如果我们编码不规范,比如调用不存在的变量、语法错误、少了个逗号,这些都会引起系统报错并进行提示,但是今天,突然发现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. 【BZOJ1201】[HNOI2005]数三角形(暴力)

    [BZOJ1201][HNOI2005]数三角形(暴力) 题面 BZOJ 洛谷 题解 预处理每个点向四个方向可以拓展的最大长度,然后钦定一个点作为三角形的某个顶点,暴力枚举三角形长度,检查这样一个三角 ...

  2. 【转】#pragma的用法

    在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的 ...

  3. 【转】如何快速识别应用MOS管,几张图片就搞定了

    三极管是流控型器件,MOS管是压控型器件,两者存在相似之处.三极管机可能经常用,但MOS管你用的可能较少.对于MOS管先抛出几个问题: 如何区分P-MOS和N-MOS: 如何区分MOS的G.D.S管脚 ...

  4. C#列表所有IIS站点以及相关站点属性

    using System; using System.Drawing; using System.Collections; using System.ComponentModel; using Sys ...

  5. Json对象和Json字符串的区别

    说白了,字符串都是带引号的. 尤其是在使用springmvc的时候,后台@RequestBody接受的是一个json格式的字符串,一定是一个字符串.  参考这个博客还可以: https://blog. ...

  6. 如何在Ubuntu-14.04上安装g++-6.3 ?

    特别注意: ppa:ubuntu-toolchain仅为尝鲜测试版,并非官方稳定版. 以下仅用于学习,不建议进行以下操作,以免出现包依赖关系问题,影响系统稳定性. askUbuntu github a ...

  7. Zabbix应用八:Zabbix监控MongoDB

    利用Zabbix监控MongoDB 一.首先介绍mongodb采集到的数据含义: 1.状态采集命令: >db.serverStatus(); 2.输出内容: { "host" ...

  8. bzoj千题计划104:bzoj1013: [JSOI2008]球形空间产生器sphere

    http://www.lydsy.com/JudgeOnline/problem.php?id=1013 设球心(x1,x2,x3……) 已知点的坐标为t[i][j] 那么 对于每个i满足 Σ (t[ ...

  9. Java SSM框架之MyBatis3(四)MyBatis之一对一、一对多、多对多

    项目搭建Springboot 1.5  pom.xml <?xml version="1.0" encoding="UTF-8"?> <pro ...

  10. HDU 4608 I-number 2013 Multi-University Training Contest 1 1009题

    题目大意:输入一个数x,求一个对应的y,这个y满足以下条件,第一,y>x,第二,y 的各位数之和能被10整除,第三,求满足前两个条件的最小的y. 解题报告:一个模拟题,比赛的时候确没过,感觉这题 ...