分配给局部变量时是否运行该函数

时间:2016-03-24 22:37:59

标签: php

下面是我为了解我的困惑而放在一起的例子。现在我的问题是,当我将函数转换为局部变量时,它是立即开始运行还是等待调用局部变量。

//Here is the function
function myFunction(){
    return 'Hello Stackoverflow';
}

//Does the functio run at this point
$stackoverflow = myFunction();

//Or does the function run here?
echo $stackoverflow;

4 个答案:

答案 0 :(得分:9)

您没有将“函数变成局部变量。”

在你的例子中,函数运行,字符串返回值被赋值给$ stackoverflow,然后你回显字符串。

我认为你正在尝试这样做。

//Here is the function
function myFunction(){
    return 'Hello Stackoverflow';
}

//Doesn't run yet
$stackoverflow = 'myFunction';

//This runs now
echo $stackoverflow();

答案 1 :(得分:3)

您实际上并没有为变量赋予函数,而是函数的返回值。

是的,该函数在您调用时执行,即将其分配给变量时。

在那之后,当然你有一个带有值的变量,你可以随心所欲地做任何事情。

答案 2 :(得分:1)

该函数在分配给值时运行,即$stackoverflow = myFunction();

答案 3 :(得分:1)

它将在分配时运行:

$stackoverflow = myFunction();

如果您希望在引用变量时调用该函数而不是在分配变量时将该函数分配给该变量:

$foo = function () {
    return 'Hello Stackoverflow';
};

echo $foo();