在函数内部使用变量的最快和最有效的方法是什么?

时间:2013-12-17 00:00:49

标签: php function variables global-variables scope

现在,让我们不要被问到什么,我不知道怎么做,我已经知道如何了。我问的是什么是最快最有效的方法和原因。

我可以想到三种方法,

声明变量全局

$name = 'Jack';
function displayName() {
    global $name;
    echo $name;
}

直接在$GLOBALS数组

中使用它
$name = 'Jack';
function displayName() {
    echo $GLOBALS['name'];
}

将其作为参数传递

$name = 'Jack';
function displayName($name) {
    echo $name;
}

我还想过将它定义为常量,但我不确定常量是否适用于像mysqli链接这样的东西

非常感谢任何输入。

2 个答案:

答案 0 :(得分:1)

您的三个示例在性能观点上具有可比性。但你永远不应该依赖 全球国家。所以永远不要声明全局变量。始终将变量作为参数传递。

使用你的第三个例子:

$name = 'Jack';
function displayName($name) {
    echo $name;
}

// Of course you need to call your function:
displayName($name);

关于全球状态论证的一个很好的答案:https://softwareengineering.stackexchange.com/questions/148108/why-is-global-state-so-evil

答案 1 :(得分:0)

你真的在这里比较纳秒,但我肯定会选择第三个例子。它对可读性,功能性和组织性更好。我几乎从不在函数中声明全局变量,因为当你开始链接文件并累积数百个变量时,它们会变得混乱,每个变量都有自己的名字。