0

これは私が持っているものです:

<?php if($row['id']!="9") echo "style=\"display:none\""; ?>  

簡単に言えばstyle="dsplay:none"、「id」が9以外の場合に配置する必要があります。これでうまくいきますが、「id」8、12、13も含めたいと思いました。十分に単純に見えましたが、論理和を追加したか、次のようになりました。

<?php if($row['id']!="8||9||12||13") echo "style=\"display:none\""; ?>

しかし、それはもう機能しないので、style="dsplay:none"常に配置されます。

私は逆に行きたかったのでこれをしました

<?php if($row['id']=="4||5||6||11") echo "style=\"display:none\""; ?>

しかし、今回style="dsplay:none"は配置されませんでした。
これにより、論理和に何か問題があるに違いないという結論に達しました。しかし、それは何ですか?教えてください、ありがとう!

4

5 に答える 5

3

あなたが欲しい:

if($row['id']!= 8 && $row['id'] != 9 && $row['id'] != 12)

row['id']現在の方法は、$の値を文字列の値と比較しているためです"8||9||12||13"

または、次のようなことを行うことができます。

if(in_array($row['id'], array(8, 9, 12)))

状態を凝縮します。

于 2011-03-22T20:21:18.693 に答える
2

あなたはそのようにそれをすることはできません。

使用if($row['id'] == 4 || $row['id'] == 5 || ...)または使用in_array()if(in_array($row['id'], array(4,5,6,11)))

于 2011-03-22T20:21:57.613 に答える
1

私はあなたが書くことをお勧めします

<?php if(in_array($row['id'], array(8, 9, 12, 13)) /* ... */; ?>
于 2011-03-22T20:21:14.347 に答える
1

うまくいかない方法で数値と文字列を比較しています。たとえば、$row['id']of1は文字列と等しくありません"4||5||6||11"

in_array値が配列に存在するかどうかをチェックする関数を使用できます。

if(!in_array($row['id'], array(4, 5, 6, 11)) echo ' style="display:none"';

論理OR(||)は文字列内では機能しません。

于 2011-03-22T20:21:56.473 に答える
0

それは論理的ではありません、または、それは文字列リテラルです。しかし、ド・モルガン

if(($row['id']!="8") && $row['id']!="9" && ...
于 2011-03-22T20:22:03.487 に答える