具有多个条件的三元运算符
Ternary operator with multiple conditions
您好,我正在尝试正确格式化三元运算符以在 php 中使用多个条件:
$result = ($var !== 1 || $var !== 2) ? '' : 'default';
问题是,在这种格式下,即使 iv $var 是 1 或 2,我也总是不正确。例如,在一个条件下 $var == 0
它工作正常。欢迎任何帮助。
此语句将始终为true
:
($var !== 1 || $var !== 2)
因为 $var
永远不可能同时是两个值,它总是 而不是 至少是两个值之一。满足 ||
运算符。
如果你想知道$var
是否是两个值之一:
($var === 1 || $var === 2)
如果你想知道$var
是否两者都不是,你可以否定条件:
(!($var === 1 || $var === 2))
或者单独否定条件中的运算符并使用&&
而不是||
(因为需要满足所有条件来证明否定,而不是只满足一个条件来证明肯定) :
($var !== 1 && $var !== 2)
取决于可读性和个人喜好。
如果 $var 是 0 , $result 是 "default" 但是 1 和 2 进入条件,两者都不同,总是进入。
$result = ($var !== 1 && $var !== 2) ? '' : 'default';
您好,我正在尝试正确格式化三元运算符以在 php 中使用多个条件:
$result = ($var !== 1 || $var !== 2) ? '' : 'default';
问题是,在这种格式下,即使 iv $var 是 1 或 2,我也总是不正确。例如,在一个条件下 $var == 0
它工作正常。欢迎任何帮助。
此语句将始终为true
:
($var !== 1 || $var !== 2)
因为 $var
永远不可能同时是两个值,它总是 而不是 至少是两个值之一。满足 ||
运算符。
如果你想知道$var
是否是两个值之一:
($var === 1 || $var === 2)
如果你想知道$var
是否两者都不是,你可以否定条件:
(!($var === 1 || $var === 2))
或者单独否定条件中的运算符并使用&&
而不是||
(因为需要满足所有条件来证明否定,而不是只满足一个条件来证明肯定) :
($var !== 1 && $var !== 2)
取决于可读性和个人喜好。
如果 $var 是 0 , $result 是 "default" 但是 1 和 2 进入条件,两者都不同,总是进入。
$result = ($var !== 1 && $var !== 2) ? '' : 'default';