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

时间:2019-12-07 12:37:50

标签: php global-variables

这可能是一个远景。

我用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设置会使函数抱怨/崩溃?我的项目很大,要跟踪定义和使用每个变量的位置变得很困难。产生错误会有所帮助。

1 个答案:

答案 0 :(得分:2)

global关键字是范围修饰符。声明global $this_is_a_test;时,它将创建一个具有全局范围的变量(如果不存在)。 所以它运行良好。

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