当我想使用在函数之外声明的变量时,是否存在最佳实践/建议?
global $myVar$GLOBALS['myVar']谢谢。
发布于 2010-08-26 09:44:04
您真正应该做的是将变量传递给函数,而不是使用全局变量。
如何通过将变量作为引用参数传递来更改函数外部的变量:
function myFunc(&$myVar)
{
$myVar = 10;
}
$foo = 0;
myFunc($foo);
var_dump($foo); // yields 10发布于 2010-08-26 10:16:54
那么,你只应该在有限的情况下使用全球值,但是要回答你的问题:
global的速度可能稍微快一些(很少会产生影响)。$GLOBALS (而不是$GLOBAL)更具可读性,因为每次您看到它时,您都知道您正在访问/更改一个全局变量。这对于避免令人讨厌的错误是至关重要的。unset($GLOBALS['varname']),而不是global $varname; unset($varname);。关于第1点和第2点,我将在这里报价萨拉·戈勒蒙:
这对您使用
$GLOBALS数组意味着什么?没错,global关键字在技术上更快。现在,我想澄清一件事。将全局变量用作本地化编译变量所提供的较小的速度性能需要与五年内查看代码并知道$foo来自全局范围的可维护性进行认真权衡。something_using($GLOBALS['foo']);对你来说永远比global $foo; /* buncha code */ something_using($foo);更清楚--不要吝啬和愚昧。
发布于 2010-08-26 09:40:44
在函数顶部使用global。这样,您就可以很容易地看到所使用的全局词。
https://stackoverflow.com/questions/3573847
复制相似问题