有些页面使用了未定义或不存在的变量,会触发 E_NOTICE 错误,php_cli.ini已设置 E_ALL & ~E_NOTICE
,原生php页面下不会显示该错误,页面其他内容能够继续显示。
原生php设置错误报告等级为
E_ALL
,显示错误但其他内容正常显示
原生php设置错误报告等级为
E_ALL & ~E_NOTICE
,不显示错误,其他内容正常显示
webman中,异常会捕获该错误,即便设置了 E_ALL & ~E_NOTICE
,然后整个页面会转到异常处理程序中。
比如一个页面,头部使用了未定义的 $sitename 变量,整个页面都变成了异常处理那个页面。
想请教下,如何能不获取这个错误,仍能继续显示该页面的内容。比如 $sitename 未赋值,则忽略它,继续显示其他内容,就像原生php页面一样。
未想到办法
"Undefined variable" 是 catch 不住的,目测是模板引擎用 isset 或者 empty 函数检测过后手动抛出异常。而且在较新的 PHP 版本里,"Undefined variable" 已经升级为 Warning 了。
所以应当修改模板引擎的配置,或者修改模板引擎的源代码,又或者更换模板引擎。