我在尝试添加到 Yii 项目中的一些遗留代码时遇到问题。
它与全局变量有关,我很清楚应该将其作为参数传递,但由于这段旧代码用于其他项目,因此重写它并不是真正的选项。
$testVar = '123';
function testOutput() {
global $testVar;
var_dump($testVar);
}
testOutput();
现在,如果我将此文件包含在一个普通的 php 文件中,它可以工作并输出
string '123' (length=3)
但是如果我将这个文件包含在 Yii 控制器甚至模板中,它会输出这个
null
我试图搜索这个问题,但我只是得到一堆关于人们错误地使用全局变量的结果。我确信这实际上不是 Yii 问题,但很可能是 Yii 正在设置的 php_ini 设置,但是在搜索代码或 Yii 文档时我找不到任何可以解释这一点的东西。
这个例子可以通过使用我的第一个代码块创建一个文件来测试,然后将它包含到一个 Yii 模板或控制器中。我什至用一个干净的示例 Yii 项目对其进行了测试。
我希望通过用 Yii 标记这个 questiong 不会损害我解决这个问题的机会,因为我觉得这不仅仅是一个 Yii 特定的问题。
任何见解将不胜感激。