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() | 的别名 |
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除外) |