2

PHP新手在这里。我无法理解这里发生了什么。

   function doEcho(){
       echo ' Done';
}

echo 'Status ='. doEcho();

上面的代码将返回

DoneStatus =

为什么“完成”在“状态”之前出现?

谢谢你。

4

3 回答 3

9

您的函数 doEcho 实际上并没有返回任何内容 - 它只是直接打印。所以会发生这样的事情:

  1. 您的行echo 'Status ='. doEcho();调用 doEcho 函数以结合“Status =”和 doEcho 函数返回的任何内容。

  2. doEcho 函数打印“Done”,然后什么也不返回。

  3. “Status =”与nothing组合,仍然是“Status =”,然后被回显。

这就是结果打印为“DoneStatus =”的原因。如果您希望该函数返回要组合的文本,则需要这样做return ' Done';

于 2013-06-14T23:05:31.017 回答
2

这是因为如果你想从函数输出然后返回,函数首先打印。将函数中的“回声”更改为“返回”

于 2013-06-14T23:04:23.357 回答
1

尝试:

function doEcho(){
   return ' Done';
}
echo 'Status ='. doEcho();
于 2013-06-14T23:05:37.237 回答