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

您好我正在尝试正确格式化三元运算符以在php中使用多个条件:</ p>
\ n

  $ result =($ var!== 1 || $ var!== 2)?  '':'default'; 
</ code> </ pre>

问题是,在这种格式中,即使iv $ var为1或2,我也总是不正确。 示例 $ var == 0 </ code>它工作正常。 欢迎任何帮助。 </ p>
</ div>

展开原文

原文

Hello I am trying to properly format ternary operator to be using multiple conditions in php:

$result = ($var !== 1 || $var !== 2) ? '' : 'default';

The problem is that in this format I always get not true even iv the $var is 1 or 2. With one condition for example $var == 0 it is working fine. Any help will be welcome.

php
droe9376
droe9376 你也可以使用$result=in_array($var,[1,2])?'default':'';。如果您最终需要检查更多条件,我建议您不要添加更多&&或||。
大约 4 年之前 回复
dongling5411
dongling5411 哦,和FYI,这与三元运算符本身无关。我们用if-else语句得到相同的行为(因为这更像是一个逻辑问题)
大约 4 年之前 回复
doutanggun9816
doutanggun9816 试试$result=($var!==1)?'':(($var!==2)?'':'默认')
大约 4 年之前 回复
douhuo1738
douhuo1738 如果$var等于1,它永远不会等于2并返回。你不想要&&?
大约 4 年之前 回复
dongxu1875
dongxu1875 你在比较一个字符串吗?尝试$var!=='1'(带引号)或$var!=1
大约 4 年之前 回复

2个回答



此语句将始终</ em> true </ code>:</ p>
\ n

 ($ var!== 1 || $ var!== 2)
</ code> </ pre>

因为 $ var </ code> 永远不能同时成为两个值,它总是不</ em>至少是这两个值中的一个。 这满足 || </ code>运算符。</ p>

如果您想知道 $ var </ code>是否是以下两个值之一:</ p >

 ($ var === 1 || $ var === 2)
</ code> </ pre>

如果你想知道是否 $ var </ code> </ em>这两个值,你可以否定条件:</ p>

 (!($ var ==  = 1 || $ var === 2))
</ code> </ pre>

或单独否定条件中的运算符并使用&amp;&amp; </ code> 而不是 || </ code>(因为需要满足所有条件才能证明是否定的,而不仅仅是证明正面的一个条件):</ p>

 (  $ var!== 1&amp;&amp; $ var!== 2)
</ code> </ pre>

视可读性和个人喜好而定。</ p>
</ div >

展开原文

原文

This statement will always be true:

($var !== 1 || $var !== 2)

Because $var can never simultaneously be both values, it will always not be at least one of the two values. Which satisfies the || operator.

If you want to know whether $var is one of the two values:

($var === 1 || $var === 2)

If you want to know if $var is neither of the two values, you can negate the condition:

(!($var === 1 || $var === 2))

Or individually negate the operators in the condition and use && instead of || (since all conditions need to be met to prove the negative, instead of just one condition to prove the positive):

($var !== 1 && $var !== 2)

Depending on readability and personal preference.

duan198123
duan198123 “这句话永远是真的:($ var!== 1 || $ var!== 2)”。 即使没有定义$ var,也是如此:https://3v4l.org/kQHE0 xD
大约 4 年之前 回复



如果$ var为0,$ result为“default”,但1和2输入条件,两者都不同,并且始终输入 。</ p>

  $ result =($ var!== 1&amp;&amp; $ var!== 2)?  '':'default'; 
</ code> </ pre>
</ div>

展开原文

原文

If $var is 0 , $result is "default" but 1 and 2 enter in condition, both are different from both and always enter.

$result = ($var !== 1 && $var !== 2) ? '' : 'default';

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐