当数组中的键不存在时,"prod" 模式下的 Symfony 4.0 不会抛出异常
Symfony 4.0 in "prod" mode doesn't throw exception when key in array does not exist
我已经在 Symfony 4.0 中申请了。当我尝试在 "dev" 模式下访问不存在的数组中的键时,PHP 如您所料抛出异常。但是当我切换到 "prod" 模式时,它开始表现得很奇怪。
"dev"模式:
$var = $array["key_which_does_not_exist"];
//this throws exception
"prod"模式:
$var = $array["key_which_does_not_exist"]["another_key_which_does_not_exist"][0]
//in $var is null
这是预期的,因为 symfony prod 环境默认将调试设置为 false。
事实上,这是 PHP 被 Symfony 覆盖的行为。您可以覆盖 PHP 处理错误的方式。
http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting
Symfony 使用此功能来覆盖此行为,无论您是否已激活调试。它不在生产环境中,而是在开发环境中,因为您可以轻松发现错误
我已经在 Symfony 4.0 中申请了。当我尝试在 "dev" 模式下访问不存在的数组中的键时,PHP 如您所料抛出异常。但是当我切换到 "prod" 模式时,它开始表现得很奇怪。
"dev"模式:
$var = $array["key_which_does_not_exist"];
//this throws exception
"prod"模式:
$var = $array["key_which_does_not_exist"]["another_key_which_does_not_exist"][0]
//in $var is null
这是预期的,因为 symfony prod 环境默认将调试设置为 false。
事实上,这是 PHP 被 Symfony 覆盖的行为。您可以覆盖 PHP 处理错误的方式。
http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting
Symfony 使用此功能来覆盖此行为,无论您是否已激活调试。它不在生产环境中,而是在开发环境中,因为您可以轻松发现错误