Php/php ref error

来自菜鸟教程
跳转至:导航、​搜索

PHP错误函数

PHP错误介绍

错误功能用于处理错误处理和日志记录。

错误函数使我们能够定义自己的错误处理规则,并修改错误记录的方式。

日志记录功能使我们可以将消息直接发送到其他计算机,电子邮件或系统日志。

错误报告功能使我们可以自定义给出错误反馈的级别和种类。

安装

PHP错误函数是PHP核心的一部分。使用这些功能无需安装。

运行时配置

错误函数的行为受php.ini中的设置影响。

错误和日志记录配置选项:

Name 默认 描述 多变
错误报告 NULL 设置错误报告级别(整数或命名常量) PHP_INI_ALL
display_errors “ 1” 指定是应该将错误打印到屏幕上,还是应该向用户隐藏错误。

注意: 永远不要在生产系统上使用此功能(仅用于支持您的开发)

PHP_INI_ALL
display_startup_errors “ 0” 即使打开了display_errors,也不会显示在PHP启动过程中发生的错误

注意: 强烈建议关闭display_startup_errors,但除调试外

PHP_INI_ALL
log_errors “ 0” 定义是否将脚本错误消息记录到服务器的错误日志或error_log中。

注意: 强烈建议使用错误日志记录,而不是在生产网站上显示错误

PHP_INI_ALL
log_errors_max_len “ 1024” 设置log_errors的最大长度(以字节为单位)。值“ 0”可用于根本不应用任何最大长度。此长度适用于记录的错误,显示的错误以及$ php_errormsg(自PHP 4.3起可用) PHP_INI_ALL
ignore_repeated_errors “ 0” 指定是否记录重复的错误消息。设置为“ 1”时,它将不会记录来自同一行同一文件中重复错误的错误(自PHP 4.3起可用) PHP_INI_ALL
ignore_repeated_source “ 0” 指定是否记录重复的错误消息。设置为“ 1”时,它将不会记录来自不同文件或源代码行的重复错误的错误(自PHP 4.3起可用) PHP_INI_ALL
report_memleaks “ 1” 如果设置为“ 1”(默认值),则此参数将显示由Zend内存管理器检测到的内存泄漏的报告(自PHP 4.3起可用) PHP_INI_ALL
track_errors “ 0” 如果设置为“ 1”,则最后的错误消息将始终出现在变量$ php_errormsg中 PHP_INI_ALL
html_errors “ 1” 关闭错误消息中的HTML标签 PHP_INI_ALL

PHP <= 4.2.3中的PHP_INI_SYSTEM

xmlrpc_errors “ 0” 关闭常规错误报告并将错误格式设置为XML-RPC错误消息(自PHP 4.1起可用) PHP_INI_SYSTEM
xmlrpc_error_number “ 0” 用作XML-RPC faultCode元素的值(自PHP 4.1起可用) PHP_INI_ALL
docref_root (自PHP 4.3起可用) PHP_INI_ALL
docref_ext (自PHP 4.3.2起可用) PHP_INI_ALL
error_prepend_string NULL 指定在错误消息之前输出的字符串 PHP_INI_ALL
error_append_string NULL 指定错误消息后输出的字符串 PHP_INI_ALL
error_log NULL 指定应该记录脚本错误的文件的名称。该文件应可由Web服务器的用户写入。如果使用特殊值syslog,则将错误发送到系统记录器 PHP_INI_ALL


PHP错误和记录功能

功能 描述
debug_backtrace() 产生回溯
debug_print_backtrace() 打印回溯
error_clear_last() 清除上一个错误
error_get_last() 返回上一次发生的错误
error_log() 将错误消息发送到日志,文件或邮件帐户
error_reporting() 指定报告哪些错误
restore_error_handler() 恢复先前的错误处理程序
restore_exception_handler() 恢复先前的异常处理程序
set_error_handler() 设置用户定义的错误处理函数
set_exception_handler() 设置用户定义的异常处理函数
trigger_error() 创建用户级错误消息
user_error() 的别名

trigger_error()

PHP预定义错误和日志记录常量

不变 描述
1 E_ERROR 致命的运行时错误。无法恢复的错误。脚本的执行被暂停
2 E_WARNING 运行时警告(非致命错误)。脚本的执行不会停止
4 E_PARSE 编译时解析错误。解析错误应仅由解析器生成
8 E_NOTICE 运行时通知。该脚本发现了可能是错误的内容,但在正常运行脚本时也可能发生
16 E_CORE_ERROR PHP启动时发生致命错误。类似于E_ERROR,除了它是由PHP核心生成的
32 E_CORE_WARNING PHP启动时发生非致命错误。就像E_WARNING一样,只是它是由PHP的核心生成的
64 E_COMPILE_ERROR 致命的编译时错误。类似于E_ERROR,但它是由Zend脚本引擎生成的
128 E_COMPILE_WARNING 非致命的编译时错误。类似于E_WARNING,但它是由Zend脚本引擎生成的
256 E_USER_ERROR 用户生成的致命错误。类似于E_ERROR,不同的是它是通过使用PHP函数trigger_error()在PHP代码中生成的
512 E_USER_WARNING 非致命的用户生成的警告。类似于E_WARNING,不同的是它是通过使用PHP函数trigger_error()在PHP代码中生成的
1024 E_USER_NOTICE 用户生成的通知。类似于E_NOTICE,不同的是它是通过使用PHP函数trigger_error()在PHP代码中生成的
2048 E_STRICT 使PHP可以建议对代码进行更改,以确保代码具有最佳的互操作性和正向兼容性(从PHP 5开始,但直到PHP 5.4才包含在E_ALL中)
4096 E_RECOVERABLE_ERROR 可捕获的致命错误。表示发生了可能是危险的错误,但没有使引擎处于不稳定状态。如果错误未由用户定义的句柄捕获,则应用程序将中止,因为它是E_ERROR(自PHP 5.2起)
8192 E_DEPRECATED 运行时通知。启用此功能可接收有关在以后的版本中不起作用的代码的警告(自PHP 5.3起)
16384 E_USER_DEPRECATED 用户生成的警告消息。类似于E_DEPRECATED,不同的是它是通过使用PHP函数trigger_error()在PHP代码中生成的(自PHP 5.3起)
32767 E_ALL 启用所有PHP错误和警告(版本低于5.4的E_STRICT除外)