PHP新手在这里。我无法理解这里发生了什么。
function doEcho(){
echo ' Done';
}
echo 'Status ='. doEcho();
上面的代码将返回
DoneStatus =
为什么“完成”会在“状态”之前出现?
谢谢。
答案 0 :(得分:9)
你的函数doEcho实际上并没有返回任何东西 - 它只是直接打印。那么会发生什么:
您的行echo 'Status ='. doEcho();
调用doEcho函数以组合“Status =”和doEcho函数返回的任何内容。
doEcho函数打印“完成”,然后不返回任何内容。
“Status =”与任何内容合并,仍然是“Status =”,然后回显。
这就是为什么产生的打印是“DoneStatus =”。如果您希望函数返回要合并的文本,则需要执行return ' Done';
。
答案 1 :(得分:2)
这是因为如果要从函数输出然后返回,则首先打印函数。将函数中的“echo”更改为“return”
答案 2 :(得分:1)
尝试:
function doEcho(){
return ' Done';
}
echo 'Status ='. doEcho();