1

我有以下 PHP 脚本

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

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

当我尝试添加不起作用的正常类型的 OR 语句时,我完全迷失了写这个

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

3 回答 3

6

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

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

下面有人向我发布了一个几乎相同的片段,但使用is_null()代替。请注意,使用is_null()=== null很好,但使用== null不是最佳实践 - 它不能确保类型相等,因此如果 $statusSet 设置为 (int)0,则执行$statusSet == null当它实际上不是空值时将返回 true。

于 2012-12-11T13:25:21.447 回答
2

就这样?

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

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

于 2012-12-11T13:24:58.540 回答
0
<?php echo (($statusSet == 'all') || (is_null($statusSet)) ) ? "class='selected'": "";?>
于 2012-12-11T13:25:07.293 回答