"prod"模式下的 Symfony 4.0 在数组中的键不存在时不会引发异常



我已经在Symfony 4.0中做了应用程序。当我尝试在"dev"模式下访问不存在的数组中的密钥时,PHP 会如您所期望的那样抛出异常。但是当我切换到"prod"模式时,它开始表现得很奇怪。

"开发"模式:

$var = $array["key_which_does_not_exist"];
//this throws exception

"生产"模式:

$var = $array["key_which_does_not_exist"]["another_key_which_does_not_exist"][0]
//in $var is null

这是意料之中的,因为symfony prod environnement默认将调试设置为false。

事实上,这是PHP的行为,被Symfony覆盖了。您可以覆盖 PHP 处理错误的方式。

http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

Symfony使用此功能来覆盖此行为,无论您是否激活了调试。它不在生产环境中,而是在开发环境中,因为您可以轻松发现错误

最新更新