これは関連しています: なぜ "echo '2' . print(2) + 3" は 521 を出力するのですか?
なぜだろうと思っていた
print(99) + print(99) + print(99) + print(99);
99100100100 を示しています....
PHPのクセについて知りたいです。
これは関連しています: なぜ "echo '2' . print(2) + 3" は 521 を出力するのですか?
なぜだろうと思っていた
print(99) + print(99) + print(99) + print(99);
99100100100 を示しています....
PHPのクセについて知りたいです。
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));
...等々。
print()
常に 1 を返すためです。PHP のマニュアルを確認してください。
これは、値を返さない echo() とは異なります。
print()
とはどちらもecho()
実際の関数ではなく、言語構造です。