【发布时间】:2016-11-02 21:00:31
【问题描述】:
您好,我正在尝试正确格式化三元运算符以在 php 中使用多个条件:
$result = ($var !== 1 || $var !== 2) ? '' : 'default';
问题是,在这种格式下,即使 $var 是 1 或 2,我也总是不正确。在一个条件下,例如 $var == 0 它工作正常。欢迎任何帮助。
【问题讨论】:
-
您是在比较字符串吗?试试
$var !== '1'(带引号)或$var != 1 -
如果
$var等于1,它永远不会等于2并返回。你不想&&吗? -
试试 $result = ($var !== 1) ? ' ' : (($var !== 2) ? ' ' : 'default')
-
哦,仅供参考,这与三元运算符本身无关。我们会通过
if - else语句得到相同的行为(因为这更像是一个逻辑问题) -
你也可以使用
$result = in_array($var, [1, 2]) ? 'default' : '';。如果您最终需要检查更多条件,我建议您不要添加更多&&或||。
标签: php conditional