您好我正在尝试正确格式化三元运算符以在php中使用多个条件:
$result = ($var !== 1 || $var !== 2) ? '' : 'default';
问题在于,在这种格式中,即使iv $ var为1或2,我也总是不正确。例如$var == 0
有一个条件,它工作正常。欢迎任何帮助。
答案 0 :(得分:7)
此语句始终为"+RWarnings:.eF”
:
true
由于($var !== 1 || $var !== 2)
永远不能同时为两个值,因此不至少是两个值中的一个。这满足了$var
运算符。
如果您想知道||
是否是以下两个值之一:
$var
如果您想知道这两个值的($var === 1 || $var === 2)
是否 ,您可以否定条件:
$var
或者单独否定条件中的运算符并使用(!($var === 1 || $var === 2))
而不是&&
(因为需要满足所有条件来证明否定,而不是仅仅证明正数的一个条件):< / p>
||
取决于可读性和个人偏好。
答案 1 :(得分:1)
如果$ var为0,$ result为“default”,但1和2进入条件,两者都不同,并且总是输入。
$result = ($var !== 1 && $var !== 2) ? '' : 'default';