您好我正在尝试正确格式化三元运算符以在PHP中使用多个条件:
$result = ($var !== 1 || $var !== 2) ? '' : 'default';
Run Code Online (Sandbox Code Playgroud)
问题是,在这种格式中,即使iv $ var为1或2,我也总是不正确.例如$var == 0,有一个条件,它工作正常.欢迎任何帮助.
这句话将永远是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)
取决于可读性和个人喜好.