无法理解php echo逻辑

Iva*_* V. 2 php

PHP新手在这里.我不知道这里发生了什么.

   function doEcho(){
       echo ' Done';
}

echo 'Status ='. doEcho();
Run Code Online (Sandbox Code Playgroud)

上面的代码将返回

DoneStatus =
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Joe*_*inz 9

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

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

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

  3. "Status ="与没有任何内容相结合,仍为"Status =",然后进行回显.

这就是为什么产生的打印是"DoneStatus =".如果希望函数返回要组合的文本,则需要执行此操作return ' Done';.