[英]Ternary operator with multiple conditions
您好,我正在尝试正确格式化三元运算符,以在php中使用多个条件:
$result = ($var !== 1 || $var !== 2) ? '' : 'default';
问题是在这种格式下,即使$ var为1或2,我也总是不正确。以一个条件为例,例如$var == 0
它可以正常工作。 任何帮助都将受到欢迎。
这句话永远是true
:
($var !== 1 || $var !== 2)
因为$var
不能同时是两个值,所以它永远不会至少是两个值之一。 满足||
操作员。
如果您想知道$var
是否$var
两个值之一:
($var === 1 || $var === 2)
如果您想知道$var
是否不是两个值,则可以取反条件:
(!($var === 1 || $var === 2))
或者单独取消条件中的运算符,并使用&&
代替||
(因为需要满足所有条件才能证明是消极的,而不仅仅是满足一个条件来证明是正的):
($var !== 1 && $var !== 2)
取决于可读性和个人喜好。
如果$ var为0,则$ result为“默认值”,但1和2输入为条件,两者都不相同,并且始终输入。
$result = ($var !== 1 && $var !== 2) ? '' : 'default';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.