2

PHP初心者です。ここで何が起こっているのか理解できません。

   function doEcho(){
       echo ' Done';
}

echo 'Status ='. doEcho();

上記のコードは戻ります

DoneStatus =

「ステータス」の前に「完了」が出てくるのはなぜですか?

ありがとうございました。

4

3 に答える 3

9

関数 doEcho は、実際には何も返さず、直接出力するだけです。それで何が起こるかはこれです:

  1. echo 'Status ='. doEcho();「Status =" と doEcho 関数が返すものを組み合わせるために、行は doEcho 関数を呼び出します。

  2. doEcho 関数は "Done" を出力した後、何も返しません。

  3. 「Status =」は何も結合されず、「Status =」のままで、エコーされます。

そのため、結果の印刷は「DoneStatus =」です。関数が結合されるテキストを返すようにしたい場合は、return ' Done';代わりに行う必要があります。

于 2013-06-14T23:05:31.017 に答える
2

これは、関数から出力したい場合は関数が最初に出力してから戻るためです。関数内の「echo」を「return」に変更します

于 2013-06-14T23:04:23.357 に答える
1

試す:

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