PHP 7.2脚本遇Warning即终止,求显示错误并续行的配置参数
解决PHP 7.2中Warning错误导致脚本终止的问题
首先,正常情况下PHP的Warning级别错误不会终止脚本执行,你遇到的问题大概率是升级到7.2后某个配置参数发生了变化。下面是你需要检查和调整的核心配置:
error_reporting:确保这个参数设置为包含Warning但不会触发终止的级别,推荐使用PHP 7.2的默认值:error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT这个配置会显示所有错误(包括Warning),但排除过时特性和严格标准的提示,同时不会让脚本因为Warning终止。
display_errors:确认这个参数设置为On,这样警告信息会输出到页面,同时脚本会继续执行:display_errors = On如果设置为
stderr,在IIS的FastCGI环境下可能会触发进程终止,导致脚本提前结束,所以一定要设为On(对应stdout输出)。assert.exception:检查这个参数是否被设为On。PHP 7.2中如果开启这个选项,断言失败会抛出AssertionError异常,直接终止脚本,而这类异常的提示可能会被你误认为是普通Warning。建议保持默认的Off:assert.exception = Off
调整完这些配置后,记得重启IIS使配置生效。如果问题还存在,建议检查你的脚本中是否有自定义错误处理函数(set_error_handler),这类函数可能会在捕获Warning时主动调用exit()或die()终止脚本。
内容的提问来源于stack exchange,提问作者Klapsius
相关产品推荐
相关产品推荐

