アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。
PHPのif文について質問なのですが、
凡ミスなのか、完全に違ってるのか
自分ではもう分からなくて質問しました!

$aaa=5;
if(($aaa) != (1 or 2 or 3 or 4)){
print "違うよ";
}

$aaaの値が1、2,3,4ではないときはとしたいのですが、
orがうまく効きません。

if(($aaa) != (1)){
print "違うよ";
}
これはプリントが出ます。

orの書き方間違ってますか?

よろしくお願いします!

A 回答 (2件)

orは論理演算子というものですので、その書き方では質問者がしたいことはできません。



1) $aaaが1でない、且つ2でない、且つ3でない、且つ4でない
if (($aaa != 1) && ($aaa != 2) && ($aaa != 3) && ($aaa != 4)) {

以下、参考まで。

2) $aaaが1より小さい、又は4より大きい
if (($aaa < 1) || (4 < $aaa)) {

3) $aaaが1以上且つ4以下、ではない
if (!((1 <= $aaa) && ($aaa <= 4))) {
    • good
    • 0
この回答へのお礼

参考にさせてもらって、無事解決できました!
ありがとうございます!

お礼日時:2010/07/16 16:36

残念ながら間違ってます。



or は論理演算子です。
えっと、うまく説明できないので、手っ取り早く次の文で型と値を表示してみましょう。

print var_dump((1 or 2 or 3 or 4));

結果は bool(true) と出ました。
ということは
if(($aaa) != (1 or 2 or 3 or 4)) は
if(($aaa) != true) と解釈できるでしょう。

従ってこのif文が成立するのは $aaa=0 など false と同じと見なされる場合だけです。
    • good
    • 0
この回答へのお礼

参考にさせてもらって、無事解決できました!
ありがとうございます!

お礼日時:2010/07/16 16:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!