如果未预定义全局变量会引发错误?

问题描述 投票:1回答:1

这可能是一个远景。

我用PHP写了一些代码:

function test_dummy()
{
    global $this_is_a_test;
    $this_is_a_test = "test in progress";
}
error_log($this_is_a_test);

但是,我没有在调用$this_is_a_test之前定义test_dummy()全局变量。然而,字符串"test in progress"仍会打印到第6行的日志中。

我知道为什么会发生这种情况,但是我的问题是:如果没有预先定义它期望已经存在的全局变量,是否有PHP设置会使函数抱怨/崩溃?我的项目很大,要跟踪定义和使用每个变量的位置变得很困难。产生错误会有所帮助。

php global-variables
1个回答
2
投票

global关键字是范围修饰符。声明global $this_is_a_test;时,如果不存在,则会创建一个具有全局作用域的变量。因此它运行良好。

有关更多详细信息,请检查the documentation

© www.soinside.com 2019 - 2024. All rights reserved.