0

1我知道从一开始就听起来很傻...

让我马上告诉你,这与PHP 中全局变量和函数参数之间的优势/劣势不是同一个问题。在 stackoverflow 上问。在那里,提问者想知道本地变量与全局变量。在这里,全局变量与全局变量。我的问题是关于 PHP 处理全局变量访问和速度的内部方式。

这是一个问题,在下面的示例中,function_1 是否应该比 function_2 运行得更快?

function function_1 ( &$global_variable_x) {
    //do something with $global_variable_x
}



function function_2 () {
    global $global_variable_x;
    //do something with $global_variable_x
}

让我强调一下有什么区别......

在案例 1 中,您在函数参数中传递全局变量,不仅如此,您还通过 ref 传递它,因此内存位置直接传递给 PHP。由于这个技巧,不需要global在函数中使用关键字,也正因为如此,PHP 没有时间在全局名称空间中查找全局。那么问题是为什么不这样做呢?它必须更快,不是吗?

当然,很容易误解这个问题并进入谈论的日常琐事

  1. 全局很差
  2. 全局变量不需要通过函数 args 传递,因为全局变量……是全局变量,因此无论如何都可以在任何地方访问它们。最后,从语义的角度来看,通过函数参数传递一个全局变量是没有意义的,它把人们搞糊涂了。

这些都没有解决所提出的问题。

一切都与速度有关。

4

1 回答 1

0

如果它是全局的,那么将它用作可以看到该全局的函数的参数是没有意义的。它要么 1) 不会更快,要么 2) 它的运行速度几乎不会变慢 3) 它的运行速度会快一点,其原因将违背形式逻辑。

于 2013-02-28T00:12:12.510 回答