In javascript
,我可以使用,例如这样的语句:
window.foo = window.foo || [];
如果没有的话window.foo
它将被分配给数组,但不会被转换为boolean
.
但如果我会做这样的事情php
,我会得到true
or false
. (ig. boolean
结果,变量不等于true
value)
为什么会存在这样的差异呢?
PS问题不在于使用什么,而在于为什么使用。
不同之处在于运算符返回的内容。在 PHP 中,逻辑运算符返回布尔值。在 JavaScript 中,逻辑运算符返回实际的操作数,并在上下文需要时依赖隐式转换将它们转换为布尔值。
如果您想要在 PHP 中返回第一个操作数(如果其计算结果为 TRUE,则返回最后一个操作数)的功能,您可以使用三元运算符的简写形式 (?:
):
PHP.net http://www.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary says:
从 PHP 5.3 开始,可以省略三元运算符的中间部分。如果 expr1 计算结果为 TRUE,则表达式 expr1 ?: expr3 返回 expr1,否则返回 expr3。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)