次のコードがあるとします。
<?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
されます。したがって、評価は次のとおりです。
123
1
'hello'
して1
hello1
。ドキュメントには、print
関数が常に 1 を返すことが明確に記載されています。
それで、ここでそれがどうなるか。
print 関数の実行 -> 出力123
-> return 1
-> concat with hello
.
なぜ123が最初に来るのですか?
おそらく、print ステートメントが最初に実行され、「123」が出力されるためです。
また、出力の最後に 1 が含まれるのはなぜですか?
「print」は1を返し、echoステートメントはその「1」をエコーするためです