次のコードがあるとします。
<?php
echo 'hello' . print 123;
実行されます。
私が期待するのは ですhello123が、実際の出力は123hello1です。
なぜ123が最初に来るのですか?1また、出力の最後に含まれているのはなぜですか?
( の周りに一対の括弧を入れようとしましたhelloが、それでも同じ結果です。)
次のコードがあるとします。
<?php
echo 'hello' . print 123;
実行されます。
私が期待するのは ですhello123が、実際の出力は123hello1です。
なぜ123が最初に来るのですか?1また、出力の最後に含まれているのはなぜですか?
( の周りに一対の括弧を入れようとしましたhelloが、それでも同じ結果です。)
echo 'hello' . print 123;
'hello'これは の戻り値と連結されますprint 123。値をprint 返す前に1、出力 123します。連結されたものhello1は、後で によって出力echoされます。したがって、評価は次のとおりです。
1231'hello'して1hello1。ドキュメントには、print関数が常に 1 を返すことが明確に記載されています。
それで、ここでそれがどうなるか。
print 関数の実行 -> 出力123-> return 1-> concat with hello.
なぜ123が最初に来るのですか?
おそらく、print ステートメントが最初に実行され、「123」が出力されるためです。
また、出力の最後に 1 が含まれるのはなぜですか?
「print」は1を返し、echoステートメントはその「1」をエコーするためです