错误函数的行为受到php.ini中设置的影响。
错误和日志记录配置选项
描述即使display_errors处于启用状态,也不会显示PHP启动序列中发生的错误。强烈建议关闭display_startup_errors,调试除外注意:在PHP 8.0.0之前,默认值为"0"不要记录重复的消息。除非将其设置为"1",否则同一文件中的同一行必须出现重复错误如果启用,最后一条错误消息将始终出现在变量$php_errorsg中
注意:从PHP 7.2.0开始弃用,从PHP 8.0.0开始删除PHP_INI_ALL
名称 | 默认 | 描述 | 可更改 |
---|---|---|---|
error_reporting | NULL | 设置错误报告级别。该参数可以是表示位字段的整数,也可以是命名常量 | PHP_INI_ALL |
display_errors | "1" | 确定错误是应该作为输出的一部分打印到屏幕上,还是应该对用户隐藏 注意:提供此功能是为了支持开发,绝不应在生产系统上使用 | PHP_INI_ALL |
display_startup_errors | "1" | PHP_INI_ALL | |
log_errors | "0" | 定义是将脚本错误消息记录到服务器的错误日志中,还是将错误日志记录到中。因此,此选项是特定于服务器的 注意:强烈建议使用错误日志记录,而不是在生产网站上显示错误 | PHP_INI_ALL |
log_errors_max_len | "1024" | 设置log_errors的最大长度(以字节为单位)。在error_log中,添加了有关源的信息。默认值为1024,0允许根本不应用任何最大长度。此长度适用于记录的错误、显示的错误以及$php_errormsg,但不适用于显式调用的函数,如error_log() | PHP_INI_ALL |
ignore_repeated_errors | "0" | PHP_INI_ALL | |
ignore_repeated_source | "0" | 忽略重复消息时忽略消息源。当设置为"1"时,它将不会记录来自不同文件或源行的重复消息的错误 | PHP_INI_ALL |
report_memleaks | "1" | 如果设置为"1"(默认值),此参数将显示Zend内存管理器检测到的内存泄漏报告 | PHP_INI_ALL |
track_errors | "0" | PHP_INI_ALL | |
html_errors | "1" | 如果启用,错误消息将包括html标记。HTML错误的格式会产生可点击的消息,将用户引导到描述错误或导致错误的功能的页面。这些引用受docref_root和docref_ext的影响。如果禁用,则错误消息将仅为纯文本 | PHP_INI_ALL |
xmlrpc_errors | "0" | 如果启用,则关闭正常错误报告并将错误格式化为XML-RPC错误消息 | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | 用作XML-RPC faultCode元素的值 | PHP_INI_ALL |
docref_root | "" | 新的错误格式包含对描述错误或导致错误的函数的页面的引用。如果是手册页面,我们可以下载该语言的手册,并将此ini指令设置为本地副本的URL。如果我们的本地手册副本可以通过“/manual/”访问,我们可以简单地使用docref_root=/manual/。另外,我们必须设置docref_ext以匹配我们的副本docref_ext=.html的文件扩展名。可以使用外部引用。例如-docref_root=http://manual/en/或docref_root=“http://landonize.it/?how=url&theme=classic&filter=Landon&url=http%3A%2F%2Fwww.php.net%2F“ 注意:这是一个支持开发的功能,因为它可以很容易地查找函数描述。但是,它不应用于生产系统。 | PHP_INI_ALL |
docref_ext | "" | 请参见docref_root 注意:docref_ext的值必须以点"."开头 | PHP_INI_ALL |
error_prepend_string | NULL | 错误消息前输出的字符串 | |
error_append_string | NULL | 错误消息后输出的字符串 | PHP_INI_ALL |
error_log | NULL | 指定应记录脚本错误的文件名。该文件应可由web服务器的用户写入。如果使用了特殊值syslog,则会将错误发送到系统记录器 | PHP_INI_ALL |
syslog.facility | "LOG_USER" | 指定记录消息的程序类型。仅当error_log设置为"syslog"时有效 注意:从PHP 7.3.0开始提供 | PHP_INI_SYSTEM |
syslog.filter | "no ctrl" | 指定用于筛选记录的消息的筛选器类型。允许的字符未经修改地传递。所有其他都以十六进制表示形式编写,前缀为\x。
注意:从PHP 7.3.0开始提供。原始过滤器类型从PHP 7.3.8和PHP 7.4.0开始提供。Windows不支持此指令 | PHP_INI_ALL |
syslog.ident | "php" | 指定每个消息前面的ident字符串。仅当error_log设置为"syslog"时有效 注意:从PHP 7.3.0开始提供 | PHP_INI_SYSTEM |