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