&引用;“警卫”;PHP中的类运算符JavaScript
我喜欢在JavaScript中这样做:&引用;“警卫”;PHP中的类运算符JavaScript,php,javascript,Php,Javascript,我喜欢在JavaScript中这样做: function (a, b, c) { var foo = a || b || c; return foo.bar; } 有没有一种快速的方法可以使用回退进行赋值,或者它需要一个自定义的函数?PHP5.3引入了?:运算符(不要与三元条件运算符混淆,如图所示)。我不使用PHP,但我想它应该是这样的: $foo = $a ?: $b ?: $c 见: 由于PHP5.3,可以省略三元运算符的中间部分。表达式expr1?:如果expr1的计
function (a, b, c) {
var foo = a || b || c;
return foo.bar;
}
有没有一种快速的方法可以使用回退进行赋值,或者它需要一个自定义的
函数?PHP5.3引入了?:
运算符(不要与三元条件运算符混淆,如图所示)。我不使用PHP,但我想它应该是这样的:
$foo = $a ?: $b ?: $c
见:
由于PHP5.3,可以省略三元运算符的中间部分。表达式expr1?:如果expr1的计算结果为TRUE,则expr3返回expr1,否则返回expr3
快乐的编码。不知道如何理解你的第一句话。还要注意的是,由于与等式进行比较,这仅具有有限的用途,例如a=false,b=0,c=1
将返回1。还请注意,它将返回表达式的结果,因此设置数据[a]时,isset(data[a])?:“bar”
将返回true
;当您可能期望它返回数据[a]的值时。另一方面,手册建议不要堆叠ternary。@Gordon True。。。在PHP中,它被混搭为“特殊的三元条件语法”。我想我已经习惯了被称为“或”或类似的称呼。至于返回表达式的结果——这是它添加的长期缺少的特性;-)我想,a?:b
可以看作是a的“快捷语法”?a:b
避免对a
进行两次评估。我不知道?:
的其他怪癖是如何影响它的。嵌套不是一个问题,因为wrt没有歧义。意图和语法——优先权之外——因为它是一个二元运算符(与其他形式的三元运算符相比)。