0

これは関連しています: なぜ "echo '2' . print(2) + 3" は 521 を出力するのですか?

なぜだろうと思っていた

print(99) + print(99) + print(99) + print(99);

99100100100 を示しています....

PHPのクセについて知りたいです。

4

4 に答える 4

6

Print は関数ではないのでprint(99)、 と同じprint 99です。わかりやすくするために括弧を削除できます。

print 99 + print 99 + print 99 + print 99;

式は右から評価されるので、

print (99 + print (99 + print (99 + print 99)));

右端printが最初に実行され、「99」が出力され、1 と評価されます。

出力:

99

評価が必要なコード:

print (99 + print (99 + print (99 + 1)));

再度、右端の印刷が実行され、99+1 ("100") が印刷され、1 に評価されます。

出力:

99100

評価が必要なコード:

print (99 + print (99 + 1));

...等々。

于 2013-08-03T10:33:36.273 に答える
1

なぜなら、ドキュメントから

print…</p>

常に1を返します

于 2013-08-03T10:29:08.943 に答える
1

print() 常に 1 を返すためです。PHP のマニュアルを確認してください。
これは、値を返さない echo() とは異なります。

print()とはどちらもecho()実際の関数ではなく、言語構造です。

于 2013-08-03T10:30:31.137 に答える