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