提问人:jcubic 提问时间:8/31/2016 最后编辑:jcubic 更新时间:7/23/2022 访问量:584
如何用 && 和 ||替换条件运算符?
How to replace conditional operator by && and ||?
问:
我正在研究表达式解析器,我想添加条件运算符()我已经更改并像javascript中的onces一样,使用以下代码:?:
&&
||
case '&&':
$stack->push($op1 && $op2 ? $op2 : ($op1 ? $op2 : $op1)); break;
case '||':
$stack->push($op1 ? $op1 : $op2); break;
所以我想我只是替换为可以使用正则表达式吗?如果运算符可以嵌套,则条件运算符的每个参数都可以具有相同的运算符。foo ? bar : baz
foo && bar || baz
答:
2赞
rici
8/31/2016
#1
foo && bar || baz
并且不等价。foo ? bar : baz
假设两者都是被认为是 true 的值,也是一个被认为是 false 的值。在这种情况下,为 false,因此第一个表达式的值为 。另一方面,三元运算符 () 当第一个参数为 true 时,alwys 返回第二个参数,因此它将返回 .foo
bar
foo && bar
baz
?:
bar
尝试和 .第一个是 2,第二个是 0。1 && 0 || 2
1 ? 0 : 2
计算三元运算符的最简单方法是将单个运算符取三个操作数
顺便说一句,可以更简单地写成.op1 && op2
op1 ? op2 : op1
0赞
Aman Kuliyal
7/23/2022
#2
你好!您可以将 当且仅当 替换为 ,
where 是一个表达式,总是结果为 true。foo ? bar : baz;
foo && bar;
baz === null
bar
例如。
bar = "this string is always gonna result true";
同样,您可以在代码中使用。||
希望这会有所帮助。
评论
here ? here : here
condition ? yes-this : no-this
?
: