誰かがこれがどのように機能するかを私に説明できますか?
<?php
print 5 . print 6 . print 7;
?>
印刷します:76151
1
関数からの戻り値はわかっていprint
ますが、関数が逆の順序で呼び出されるのはなぜですか?
誰かがこれがどのように機能するかを私に説明できますか?
<?php
print 5 . print 6 . print 7;
?>
印刷します:76151
1
関数からの戻り値はわかっていprint
ますが、関数が逆の順序で呼び出されるのはなぜですか?
あなたの関数は右から左に評価しています。
トレースは次のようになります。
print (5 . print 6 . print 7)
print 7が最初に評価され、7を印刷して1を返します。
print (5 . print 6 . 1)
これは、61を出力し、1を返すようにトレースします。最後に:
print (5 . 1)
したがって、76151があります。
あなたの表現は次のように書くことができます:
print (5 . print (6 . print 7));
print 61
とprint 7
リターンブール値1
であるため、なぜ1
も印刷されます