让我们忽略糟糕的设计并考虑在函数内部使用全局变量,但在默认命名空间中不是全局变量:
a();
function a() {
function b() {
global $x;
echo $x;
}
$x=10;
b();
}
该变量$x
不会打印到标准输出。但是,如果我们声明global $x
内部函数a()
,那么它会打印到标准输出。有什么方法可以$x
在内部定义为全局a()
(以便它在b()
函数中可用)但不在默认命名空间的范围内?
编辑:假设要传递任意数量的变量,因此使用use()
或作为参数定义它们是不切实际的。