$ 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. Pyvmomi这是做什么的?
- 3. 这是做什么用的?
- 4. 这是做什么的?
- 5. 这是什么:main:for(...){...}在做什么?
- 6. 这是什么“加入”在做什么?
- 7. 这是为什么这样做呢?
- 8. 这是什么叫,我该怎么做?
- 9. 这段代码中的IEventRepository是什么? Resolver.resolve()是做什么的?
- 10. 这是什么SQL循环做
- 11. 这行代码是做什么的?
- 12. 这个C代码是做什么的?
- 13. 这是什么做的(Python)的
- 14. 这条Javascript线是做什么用的?
- 15. 这个元素是做什么的?
- 16. 这个“Lambda Expression”是做什么的?
- 17. 这是什么代码做perl的
- 18. 这个“Image Fetcher 0”是做什么的?
- 19. array_item [] = $ file这是做什么用的?
- 20. 这是什么[var_name] = 12;做在JavaScript
- 21. 这个clojure代码是做什么的?
- 22. 这是做什么的:MS_POSITIONING =“GridLayout”
- 23. 这个java bitshift是做什么的?
- 24. 这个rails代码是做什么的?
- 25. 这是什么HTML和JS做的?
- 26. 这个C++构造是做什么的?
- 27. c:这条线是做什么的?
- 28. 什么是splat在这里做?
- 29. 这个Javascript是做什么的?
- 30. 这段C代码是做什么的?
另外,如果'$ 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