Php Yii2错误处理程序在非对象调用时失效

Php Yii2错误处理程序在非对象调用时失效,php,yii,error-handling,yii2,die,Php,Yii,Error Handling,Yii2,Die,任何人都知道是什么导致Yii2错误处理程序在以下行上正确停止: echo $missing; echo $missing->noneExisting(); (假设$missing为空)并正确显示“未定义变量:missing…”注意。同时“死”在下面这行: echo $missing; echo $missing->noneExisting(); 并显示(返回)完全空白的页面,而不是正确的错误消息 自从我开始用Yii2编码以来,我在Yii2错误处理程序方面遇到了一个非常奇怪的问

任何人都知道是什么导致Yii2错误处理程序在以下行上正确停止:

echo $missing;
echo $missing->noneExisting();
(假设
$missing
为空)并正确显示“未定义变量:missing…”注意。同时“死”在下面这行:

echo $missing;
echo $missing->noneExisting();
并显示(返回)完全空白的页面,而不是正确的错误消息

自从我开始用Yii2编码以来,我在Yii2错误处理程序方面遇到了一个非常奇怪的问题。上面的代码就是一个例子。另一个是,在迁移中重新定义
Yii
名称空间

,该问题是由我的PHP配置引起的。但我很难相信,主要是因为:

  • 我没有改变我的XAMPP结构,
    php.ini
    content等等。在过去的许多个月里,我实际上仍然在使用旧的良好的XAMPP 1.8.1版本(版本不符合php版本)

  • 所有遇到的问题都是大约一个月前开始的,当时我开始用Yii2编写代码,而且只发生在Yii2驱动的应用程序中——我无法在我的任何Yii1驱动的项目中重现上述任何问题

我同意,这一定是我在本地安装的PHP中的一些东西,因为我已经在新安装的XAMPP5.6.8及其可移植版本中测试了所有这些示例。但是,由于我只能在Yii2驱动的项目中重现这个问题,而且在Yii1驱动的应用程序或纯PHP下,一切都进展得很顺利,所以一定有某种讨厌的魔鬼在里面


是否有人可以在此提供帮助或至少说明一下,我应该从哪里开始查找?

我发现在某些环境中,当Yi2处理缺少的变量错误时,它会在调试器的底部显示一个错误

警告:var_导出不处理第187行~/vendor/yiisoft/yii2/helpers/BaseVarDumper.php中的循环引用

可能是这个错误导致了您的环境在此基础上死亡。 然而,这似乎是一个错误

此外,我还找到了一个解决方法,使用本文中的解决方案。 这并不漂亮,但却是一个解决方案


编辑:发布了此问题的修补程序

实际上是Idk。我有
XAMPP版本1.8.3
PHP5.5.11
。经过测试,php致命错误得到了正确处理。所以这一定是您的本地安装问题,请尝试另一个xamp或vagrant框。您是否在web/index.php
defined('yi_debug')或define('yi_debug',true)中将调试变量设置为true;定义('yi_ENV')或定义('yi_ENV','dev')@arkoak是的,当然!:>