$ 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