Art*_*cto 75
那么,你应该只在有限的情况下使用全局变量,但要回答你的问题:
global
可能稍微快一点(它很少有所作为).$GLOBALS
(不$GLOBAL
)更具可读性,因为每次看到它,您就知道您正在访问/更改全局变量.这对于避免令人讨厌的错误至关重要.unset($GLOBALS['varname'])
,而不是global $varname; unset($varname);
.关于第1点和第2点,我在这里引用 Sara Golemon:
这对你使用
$GLOBALS
数组意味着什么?没错,global
关键字在技术上更快.现在,我想在这里清楚一点.使用全局变量作为本地化[编译变量]给出的次要速度可能需要与在五年内查看代码的可维护性以及知道$foo
来自全局范围的可维护性密切相关.something_using($GLOBALS['foo']);
对你来说总是比global $foo; /* buncha code */ something_using($foo);
你更清楚,不要吝啬和愚蠢.
rek*_*o_t 31
你应该做的是将变量传递给函数而不是使用全局.
如何通过将变量作为参考参数传递来更改函数外部的变量的示例:
function myFunc(&$myVar)
{
$myVar = 10;
}
$foo = 0;
myFunc($foo);
var_dump($foo); // yields 10
Run Code Online (Sandbox Code Playgroud)