如果语句带有OR,则表示PHP短

时间:2012-12-11 13:23:09

标签: php if-statement

我有以下PHP脚本

<?php 
    echo (($statusSet) == 'all') ? "class='selected'": "";
?>

我想做的是在其中包含一个OR来说明$ statusSet等于所有OR NULL

因为我尝试添加正常类型的OR语句而无法正常工作,因此我很难与hwo一起写这篇文章

<?php 
    echo ((($statusSet) == 'all')||(($statusSet) == 'all'))) ? "class='selected'": "";
?>

3 个答案:

答案 0 :(得分:6)

您所做的只是在整个if语句中添加另一个要计算的表达式。

<?php echo (($statusSet == 'all' || $statusSet === null) ? "class='selected'": ""); ?>

下面有人向我发布了一个几乎相同的片段,但是使用了 is_null()。请注意,使用 is_null() === null 很好,但使用 == null 并非最佳做法 - 它不会确保类型相等所以如果$ statusSet设置为(int)0,那么当 $ statusSet == null 实际上不是空值时,它将返回true。

答案 1 :(得分:2)

那么这样吗?

echo $statusSet == 'all' || $statusSet === NULL ? "class='selected'": "";?>

我不确定你是否将正确的行复制到了问题中,但你的原因是因为这两个条件完全相同,因此如果一个是真的那么那么另一个条件也是如此。 / p>

答案 2 :(得分:0)

<?php echo (($statusSet == 'all') || (is_null($statusSet)) ) ? "class='selected'": "";?>