【问题标题】:Symfony 4.0 in "prod" mode doesn't throw exception when key in array does not exist当数组中的键不存在时,“prod”模式下的 Symfony 4.0 不会抛出异常
【发布时间】:2019-02-02 07:34:58
【问题描述】:

我已经在 Symfony 4.0 中进行了应用。当我尝试在“开发”模式下访问不存在的数组中的键时,PHP 会抛出您所期望的异常。但是当我切换到“prod”模式时,它开始表现得很奇怪。

“开发”模式:

$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

【问题讨论】:

  • prod 中可能没有调试:new AppKernel('prod', true)
  • @AbraCadaver 你能帮我填一下吗?或者给我一些资源,在那里我可以了解更多。我习惯了 C#,我真的不明白为什么将调试设置为 false 会影响访问数组中不存在的键。

标签: php arrays symfony exception symfony4


【解决方案1】:

这是预期的,因为 symfony prod 环境默认将调试设置为 false。

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

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

Symfony 使用这个特性来覆盖这个行为,无论你是否激活了调试。它不在 prod 环境中,而是在 dev 环境中,因为您可以轻松发现错误

【讨论】:

  • 你能帮我填一下吗?或者给我一些资源,在那里我可以了解更多。我习惯了 C#,我真的不明白为什么将调试设置为 false 会影响访问数组中不存在的键。
猜你喜欢
  • 2016-12-19
  • 1970-01-01
  • 2021-10-11
  • 2017-08-21
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多