echo
IMMEDIATE出力を行います。それ自体がエコーを実行する関数をエコーしようとすると、関数のエコーが最初に実行されます。例:
function foo() {
echo 'foo';
}
echo 'bar' . foo(); // output foobar
と同等のものとして実行されます
echo 'foo';
echo 'bar';
なんで? echo
まず、出力される文字列を作成する必要があります。したがって、bar
の前に エコー可能である場合、親エコーはfoo()
を呼び出す必要があります 。この関数は何も返しません。単に独自のエコーを実行します。複数のecho
呼び出しは互いに調整されないため、fooのechoが出力を行います。次に、fooは親echoに何も返さないため、echo 'bar' . null
、および出力bar
。
これがあった場合:
function bar() {
return 'bar';
}
echo 'foo' . bar();
期待どおりに機能します。実行シーケンスは次のようになります:
$temp = bar(); // $temp gets string'bar'
echo 'foo' . $temp;
echo 'foo' . 'bar';
echo 'foobar';
-> output foobar