以下是例子:
如果我这样写:
<?php
$var = 'A';
echo ($var == 'B' || $var == 'C') ? 'B or C' : 'A';
?>
// Out将成为“A” 但如果我写得如下:
<?php
$var = 'A';
echo ($var == ('B' || 'C')) ? 'B or C' : 'A';
?>
它给我输出“B或C” 这里($ var ==('B'||'C'))不正确或者我错过了什么?
答案 0 :(得分:1)
这与三元运算符无关。这是关于type juggling和比较。
在第二种情况下,您正在执行'B' || 'C'
,这将被视为true
- 因为||
是逻辑运算符。因为类型杂耍,'A' == true
是正确的,因此B or C
将是您的结果
答案 1 :(得分:0)
echo($ var ===('B'||'C'))? 'B或C':'A';
这也是您必须检查数据类型的正确答案。