我的 Yii 应用程序有一个标准的(自动生成的)index.php
引导文件。它包含:
defined('YII_DEBUG') or define('YII_DEBUG', TRUE);
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL', 3);
当我输入这两行时:
var_dump(defined('YII_DEBUG'));
var_dump(YII_DEBUG);
在这两个 Yii 常量的定义之下,我得到了异常行为(两次 true
)。
当我评论第一个代码块(YII_DEBUG
定义)的第一行时,我也得到了预期的结果——false
+ 注意:使用未定义常量 YII_DEBUG
.
奇怪的事情开始发生,当我离开 YII_DEBUG
注释的定义,但是从 index.php
移动这两行 var_dump
并把它们在我的配置文件的开头。
我期望的是完全相同的行为(没有任何改变,YII_DEBUG
仍然未定义),但我得到的是 true
+ false
。
发生了什么事?我缺少什么? YII_DEBUG
常量在 Yii 应用程序生命周期的哪个点被定义?
编辑:在这两个 var_dump
下方添加 print_r(get_defined_constants(true)['user']);
确认, YII_DEBUG
在第二个场景中定义,在第一个场景中未定义。
最佳答案
YII_DEBUG
在 YiiBase.php 中设置为 false
, 由 yii.php 调用,它包含在您的 index.php
关于yii - YII_DEBUG 到底在哪里定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22830900/