用户定义函数在另一个用户定义函数PHP中的排序

用户定义函数在另一个用户定义函数PHP中的排序,php,Php,我不明白在函数中使用函数时,排序是如何工作的 function funcChild(){ echo "Sparta"; } function funcMain($panic){ echo "This is $panic"; } funcMain(funcChild()); 它输出: SpartaThis is 我只想让它输出“This is Sparta”。然后你需要返回函数中的值,这样它就可以被传递到下一个函数,而不是echo它就在那里。echo和return是不

我不明白在函数中使用函数时,排序是如何工作的

function funcChild(){
    echo "Sparta";
}

function funcMain($panic){
    echo "This is $panic";
}



funcMain(funcChild());
它输出:

SpartaThis is 

我只想让它输出“This is Sparta”。

然后你需要
返回函数中的值,这样它就可以被传递到下一个函数,而不是
echo
它就在那里。

echo
return
是不等价的。当你回显某个东西时,它会立即打印出来,而不是存储在任何地方。当代码执行时,
funcChild()
首先执行,因为
funcMain()
试图将其用作参数
funcChild()
将“Sparta”回显到屏幕上,然后不返回任何内容供
funcMain()
使用。这意味着
funcMain()
在没有输入的情况下运行

将echo“Sparta”更改为
返回“Sparta”


这就像数学一样,它是由内而外开始的,你必须生成报税表,而不是直接打印

function funcChild(){
    return "Sparta"; // return ... not direct print!
}

function funcMain($panic){
    echo "This is $panic";
}



funcMain(funcChild());

为什么不将代码更改为:

function funcMain($panic) {
  echo "This is $panic";
}
怎么办?我看不出你为什么想要或需要做你正在尝试的事情。但是,您得到结果的原因是对funcChild的调用是作为funcMain的参数发生的。因此,funcChild首先执行,然后funcMain执行

如果你一定要做你想做的事,那么
funcChild(funcMain())应该是如何做到的。

我可以借用你的眼睛吗?恐怕我自己需要它们普莱吉特和可以理解的…:d修改funchild以返回而不是回显;或者使用输出缓冲调用funcChild,然后将该缓冲值传递给funcMain
function funcChild(){
    return "Sparta"; // return ... not direct print!
}

function funcMain($panic){
    echo "This is $panic";
}



funcMain(funcChild());
function funcMain($panic) {
  echo "This is $panic";
}