无法理解php echo逻辑

时间:2013-06-14 23:02:16

标签: php

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

   function doEcho(){
       echo ' Done';
}

echo 'Status ='. doEcho();

上面的代码将返回

DoneStatus =

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

谢谢。

3 个答案:

答案 0 :(得分:9)

你的函数doEcho实际上并没有返回任何东西 - 它只是直接打印。那么会发生什么:

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

  2. doEcho函数打印“完成”,然后不返回任何内容。

  3. “Status =”与任何内容合并,仍然是“Status =”,然后回显。

  4. 这就是为什么产生的打印是“DoneStatus =”。如果您希望函数返回要合并的文本,则需要执行return ' Done';

答案 1 :(得分:2)

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

答案 2 :(得分:1)

尝试:

function doEcho(){
   return ' Done';
}
echo 'Status ='. doEcho();