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

Joh*_*ger 0 php conditional

您好我正在尝试正确格式化三元运算符以在PHP中使用多个条件:

$result = ($var !== 1 || $var !== 2) ? '' : 'default';
Run Code Online (Sandbox Code Playgroud)

问题是,在这种格式中,即使iv $ var为1或2,我也总是不正确.例如$var == 0,有一个条件,它工作正常.欢迎任何帮助.

Dav*_*vid 8

这句话将永远true:

($var !== 1 || $var !== 2)
Run Code Online (Sandbox Code Playgroud)

因为$var永远不能同时是两个值,所以它始终不是这两个值中的至少一个.这满足了||运营商.

如果您想知道是否$var是以下两个值之一:

($var === 1 || $var === 2)
Run Code Online (Sandbox Code Playgroud)

如果你想知道两个值$var是否都不是,你可以否定这个条件:

(!($var === 1 || $var === 2))
Run Code Online (Sandbox Code Playgroud)

或者单独否定操作员的条件和使用&&而不是||(因为需要满足所有条件来证明否定,而不仅仅是证明积极的一个条件):

($var !== 1 && $var !== 2)
Run Code Online (Sandbox Code Playgroud)

取决于可读性和个人喜好.

  • _"这句话永远是真的:`($ var!== 1 || $ var!== 2)`"_.即使没有定义`$ var`也是如此:[https://3v4l.org/kQHE0](https://3v4l.org/kQHE0)xD (2认同)