1

次のPHPスクリプトがあります

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

私がやりたいことは、これに OR を含めて、$statusSet が all OR NULL と等しい場所を示すことです

機能しなかった通常のタイプのORステートメントを追加しようとしたため、これを書くためにhwoで完全に失われました

<?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を実行します。実際に null 値でない場合は true を返します。

于 2012-12-11T13:25:21.447 に答える
2

では、このように?

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

正しい行を質問にコピーしたかどうかはわかりませんが、あなたの行が機能しない理由は、2 つの条件がまったく同じであるためです。したがって、一方が真であれば、もう一方も真です。

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