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


Does the function run when assigned to local variable

下面是我为理解我的困惑而举的例子。现在我的问题是,当我把函数变成一个局部变量时,它是立即开始运行,还是等待调用局部变量。

//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;

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

在您的示例中,函数运行时,字符串返回值被分配给$stackoverflow,然后您回显该字符串。

我想你是想这么做。

//Here is the function
function myFunction(){
    return 'Hello Stackoverflow';
}
//Doesn't run yet
$stackoverflow = 'myFunction';
//This runs now
echo $stackoverflow();

实际上并不是将函数赋给变量,而是将函数的返回值赋给变量。

是的,当你调用函数时,也就是当你把它赋值给变量时,函数就会被执行。

当然,在那之后,你就有了一个有值的变量,你可以用它做任何你想做的事情

它将在分配时运行:

$stackoverflow = myFunction();

如果你想在引用变量时调用函数,而不是在分配时调用,你可以将函数分配给变量:

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

当函数被分配给一个值时运行,即在$stackoverflow = myFunction();