繁体   English   中英

具有多个条件的三元运算符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM