$ top + = $ i? 12:0;這是做什麼
這是做什麼
回答
$i
如果是
- 設置
- 和不
false
- 和不
null
由十二增量$top
;否則,通過零,如果它已經不是一個,則隱式地將其轉換爲數字變量。
如果$i
的值已設置(非空/空含義條件解析爲true),則將12添加到$top
和0
否則。
它基本上是速記:
if ($i)
{
$top += 12;
}
else
{
$top += 0;
}
+1鏈接到三元運營商。 – 2010-05-12 18:26:04
+1:有趣,從來不知道這個算子。 – 2010-05-12 18:31:11
簡寫爲:
if ($i) {
$top += 12;
}
最清楚的答案。 – 2010-05-12 18:21:20
你在那裏缺少'else'。 – Sarfraz 2010-05-12 18:22:14
@Sarfraz是對的:如果'$ i'在操作之前不是數值,那麼'+ 0'將會進行隱式轉換,所以它不是100%相同的(儘管在實踐中,它可能與'$ i'不相關可能會是數字)。兩種方式都很好回答。 – 2010-05-12 18:24:32
如果$ i是真實的(例如,不爲零或空字符串) 12被添加到$ top。否則,不會向$ top添加任何內容。
這等同於由12
如果$i
具有真布爾值(即$i = 1
,$i = true
等)的$top
if($i)
$top = top + 12;
的$嗎? 12:0是if語句的「簡寫」。在這種情況下,$ i被評估爲一個表達式。如果表達式的計算結果爲真,則值12將用作附加賦值表達式中的r值。如果$ i評估爲false,則將0用作r值。
- 1. 這是什麼「#」是在這裏做
- 2. 這是做什麼用的?
- 3. 這是做什麼用的?
- 4. 這是做什麼的?
- 5. 這是做什麼用的?
- 6. 這是做什麼的? C++
- 7. 這是做什麼用的?
- 8. Pyvmomi這是做什麼的?
- 9. 這是什麼:main:for(...){...}在做什麼?
- 10. 這是什麼「加入」在做什麼?
- 11. 這是爲什麼這樣做呢?
- 12. 這是什麼叫,我該怎麼做?
- 13. 這是什麼行代碼是做
- 14. 這PROMPT_COMMAND做什麼?
- 15. 這個Fortran參數聲明是做什麼的,它爲什麼這樣做?
- 16. 這段代碼中的IEventRepository是什麼? Resolver.resolve()是做什麼的?
- 17. 這個腳本是做什麼的?
- 18. 這個C代碼是做什麼的?
- 19. 這個XSLT片段是做什麼的?
- 20. Perl - 這個陳述是做什麼的?
- 21. Javascript Regex這行是做什麼用的?
- 22. 這個typedef聲明是做什麼的?
- 23. 這個awk腳本是做什麼的?
- 24. 這個conf是做什麼的?
- 25. 這個clojure代碼是做什麼的?
- 26. 這個「Lambda Expression」是做什麼的?
- 27. 這個MIPS程序是做什麼的?
- 28. 這個腳本是做什麼的?
- 29. 這是什麼JS代碼做
- 30. 這段Javascript代碼是做什麼的?
另外,如果'$ i'沒有設置,則會發出警告。 – Powerlord 2010-05-12 18:32:17
@ R.B好點。爲避免這種警告,應該使用'(isset($ i)和($ i))'來代替'$ i'。 – 2010-05-12 18:32:55
當$ i變爲數字變量時,它是否得到值0? 什麼是關於PHP導致$ i隱式轉化爲數值var?爲什麼它隱式地改爲numeric var,而不是布爾型(因爲三元運算符可能會提示布爾型編碼)? – Eddified 2010-05-12 19:18:10