• ベストアンサー

PHPのif文について質問なのですが、

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の書き方間違ってますか? よろしくお願いします!

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>チェックボックスに連番で1~15ある こんな感じでどうですか? <? $hoge=(array) $_REQUEST["hoge"]; $a="ERROR:1-5<br>"; $b="ERROR:6-10<br>"; $c="ERROR:11-15<br>"; foreach(range(1,5) as $val){ if(in_array($val,$hoge)){ $a=""; break; } } foreach(range(6,10) as $val){ if(in_array($val,$hoge)){ $b=""; break; } } foreach(range(11,15) as $val){ if(in_array($val,$hoge)){ $c=""; break; } } print $a.$b.$c; ?> <form method="post"> <? for($i=1;$i<=15;$i++){ print "<input type=\"checkbox\" name=\"hoge[]\" value=\"{$i}\">{$i}\n"; } ?> <input type="submit" value="go"> </form>

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

普通はこんな感じ・・・ <? $aaa=5; if(!in_array($aaa,array(1,2,3,4))){ print "違うよ"; } ?>

debun_2009
質問者

お礼

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

debun_2009
質問者

補足

回答ありがとうございます! 詳細が足りな過ぎでした!すみません。 チェックボックスに連番で1~15あるとして(nameは同じ)、 5個ずつ分けてPHPでエラーを表示したいと思っています。 $aには、チェック1~5 $bには、チェック6~10 $cには、チェック11~15 それぞれ最低1個でもチェックがなければ、それぞれの変数にエラーを返したいです。

  • stanaka
  • ベストアンサー率44% (13/29)
回答No.1

間違ってます。  ORやANDは真偽値型の演算子なので、真偽値が帰ってくる条件式に適用しなければ意味がありません。たぶんあなたのしたいことは以下のようなものでしょう。 if( $aaa != 1 && $aaa != 2 && $aaa != 3 && $aaa != 4 ) { print "違うよ"; } && は、AND と同じです。演算子の優先度が違いますが。こちらのほうが他の人に読んでもらいやすいのではないかと思います。

debun_2009
質問者

お礼

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

debun_2009
質問者

補足

回答ありがとうございます! 詳細が足りな過ぎでした!すみません。 チェックボックスに連番で1~15あるとして(nameは同じ)、 5個ずつ分けてPHPでエラーを表示したいと思っています。 $aには、チェック1~5 $bには、チェック6~10 $cには、チェック11~15 それぞれ最低1個でもチェックがなければ、それぞれの変数にエラーを返したいです。

専門家に質問してみよう