Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当分配给局部变量时,函数是否运行_Php - Fatal编程技术网

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

Php 当分配给局部变量时,函数是否运行,php,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

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

//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=myFunction()处

当函数被赋值时,即在
$stackoverflow=myFunction()处运行该函数

您没有将“函数转换为局部变量”

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

我想你是想这么做

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

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

//This runs now
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();
如果希望在引用变量时调用函数,而不是在赋值时调用函数,则可以将函数赋值给变量:

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

echo $foo();

这太棒了。干杯是的,这可能就是OP真正的意思,现在这太棒了。干杯是的,这可能就是OP真正的意思,澄清一下,函数在被调用时(使用
()
语法)实际上是运行的,不管它是否被分配给变量。在本例中,这确实发生在与变量赋值相同的语句中。@CarlGroner您完全正确,但我指的是操作代码。为了澄清,函数在被调用时(使用
()
语法)实际上是运行的,而不管它是否被赋值给变量。在本例中,这确实发生在与变量赋值相同的语句中。@CarlGroner您完全正确,但我指的是操作代码。不,我认为您无法做到这一点,至少在5.3中引入匿名函数(闭包)之前,PHP5.6.0是完全有效的。0@MarkBaker你是对的,我是正确的。谢谢你指出这一点。不,我不认为你能做到这一点,至少在PHP5.6.0在5.6之前完全有效之前,匿名函数(闭包)是在5.3中引入的。0@MarkBaker你是对的,我是正确的。谢谢你指出这一点。