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你是对的,我是正确的。谢谢你指出这一点。