echo "1" . (print '2') + 3;
返回214.腳本如何以* 14結尾?在一條語句中合併回顯和打印
回答
當你
echo "1" . (print '2') + 3;
PHP會做(demo)
line # * op fetch ext return operands
---------------------------------------------------------------------------------
2 0 > PRINT ~0 '2'
1 CONCAT ~1 '1', ~0
2 ADD ~2 ~1, 3
3 ECHO ~2
4 > RETURN 1
在口頭上:
- 打印2,返回1
- CONCAT「1 「返回1 =>」11「
- 加 「11」 + 3 => 14
- 回聲14
,這就是214
+ - .
具有相等Operator Precedence的運營商,但左結合:
對於運營商左結合意味着評價從左向右進行,右結合意味着相反。
編輯:因爲所有其他的答案權利要求PHP確實1 + 3,這裏進一步證明,它不:
echo "1" . (print '2') + 9;
給出220,例如11 + 9而不是1 . (1+9)
。如果除了優先於串聯,這本來是2110,但是對於你不得不寫
echo "1" . ((print '2') + 9);
print
執行首先是因爲括號的,所以打印的2
第一,but it returns 1。然後,你的回聲得到執行,打印1
。然後你將它連接到print
(它是1)的結果並添加3。這是4
print
總是根據返回1:http://php.net/manual/en/function.print.php
如此,是因爲算術運算符的優先級在一個進行連結,讓您得到:
"1" . (1+3)
...這是 「14」)。並且因爲print
直接發送字符串以輸出,所以您在所有內容前都會得到'2'。
中間的1實際上是一條true
聲明。 因爲print
聲明實際上返回true
。 所以,你得到2(從打印),1(從回聲打印)和4(1 + 3)
echo "1" . (print '2') + 3;
你需要考慮它的邏輯順序,什麼第一反應。
在我們可以回顯任何東西之前, - 「1」。 (打印'2')+ 3 - 我們需要評估它來解決它。
首先我們在紙上寫下1作爲計算的第一部分。
Scrap paper: 1
Answer Sheet:
我們計算出「打印‘2’」,這是一個功能數字2寫入我們的答案紙的紙張,並返回1,這是我們寫在我們的廢品一張紙上。
Scrap paper: 1 . 1 +3
Answer Sheet: 2
在此之後,我們希望將下一部分連接到最後,由於「。」
Scrap paper: 11 + 3
Answer Sheet: 2
現在我們把它一起
Scrap paper: 11 + 3
Scrap paper: 14
Answer Sheet: 2
然後我們我們的廢鋼數據迴應了我們的答卷
答卷:214
echo "1" . (print '2') + 3;
1.
Code--: echo "1" . (print '2') + 3;
Result:
2.
Code--: echo "1" . 1 + 3;
Result: 2
3.
Code--: echo 11 + 3;
Result: 2
4.
Code--: echo 14;
Result: 2
5.
Code--:
Result: 214
我希望這是一些感覺,並記住打印的返回總是1,以及在另一個exe內部打印或回顯的任何函數cution將在它的調用者/父母之前回顯/打印。
- 1. SQL合併中的打印語句
- 2. 只打印第一條語句python
- 3. 結合Python打印語句
- 4. 返回語句與打印語句?
- 5. 如何將2條SQL語句合併爲一條語句
- 6. ElasticSearch合併條件語句'和'與'或'
- 7. 合併兩條SQL語句
- 8. 在下一行中打印語句
- 9. if語句,並打印在Python
- 10. 顯示0.000在打印語句浮點#
- 11. Python不打印出elif和else條件,只打印if語句的條件
- 12. c# - 將catch語句塊中的2條語句合併成一個語句
- 13. php,打印語句打印在哪裏
- 14. 在for循環中返回一系列打印語句
- 15. WebDriver打印錯誤的條件語句
- 16. CocoaLumberjack 4次打印每條語句
- 17. 兩條語句進入打印循環
- 18. perl打印語句
- 19. symfony中的打印語句
- 20. 在一行上打印多條語句以輸入
- 21. Python - nohup.out不顯示打印語句
- 22. 使用try catch語句打印語句
- 23. 包括在打印語句中的整
- 24. Python在打印語句中停止
- 25. SPSS在outfile中打印語句
- 26. 在RMarkdown中隱藏打印語句
- 27. 在f#中捕獲打印語句
- 28. Python - 在if,elif,else語句中打印
- 29. Python:如何在if-else語句中顯示所有打印語句
- 30. 如何讓java只用if語句打印一條消息
我的錯誤。 - 更正 – Michiel 2012-02-09 16:57:32