未加载php.ini时PHP error_reporting的默认值及行为是什么?
PHP未加载php.ini时error_reporting的默认取值说明
默认取值规则
PHP无php.ini配置加载时,采用编译阶段硬编码的默认值,不同版本的默认值存在差异:
- PHP 5.2及更早版本:
E_ALL & ~E_NOTICE,默认开启除通知类错误外的所有错误 - PHP 5.3版本:
E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED,默认关闭通知、编码规范提示、废弃提示类错误 - PHP 5.4~5.5版本:
E_ALL & ~E_STRICT & ~E_DEPRECATED,默认开启通知类错误,关闭编码规范、废弃提示类错误 - PHP 5.6版本:
E_ALL & ~E_DEPRECATED & ~E_STRICT,规则同5.4~5.5 - PHP 7.0及以上所有版本:
E_ALL,默认开启全部错误级别提示
验证方法
你可以在当前无配置加载的环境直接执行代码输出当前取值:
echo error_reporting();
将输出的数值和对应PHP版本的错误常量做位与运算,即可匹配到当前开启的具体错误类型。
注意事项
如果PHP启动时通过命令行-d参数、Web服务(FPM/Apache mod_php等)的内置配置覆盖了error_reporting参数,优先级会高于编译默认值,以覆盖后的配置为准。
内容的提问来源于stack exchange,提问作者Kamafeather
相关产品推荐
相关产品推荐

