• ベストアンサー

変数の一致条件がたくさんあるときの判定の書き方

変数の一致条件がたくさんあるときの判定の書き方を教えてください <例> $areaが、下記の条件判定 tokyo osaka nagoya 現状では、下記のように書いているのですが、 今後、この条件が増えてくる可能性があるので、 そうしたとき、もっとスマートに書きたいです if (($area=='tokyo') || ($area=='osaka') || ($area=='nagoya')) {  処理; }

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

  • ベストアンサー
  • neko-ten
  • ベストアンサー率55% (1287/2335)
回答No.2

条件要素を配列に入れるのは#1さんと同じだけど、in_array使っちゃってもいいんじゃないかな http://php.net/manual/ja/function.in-array.php $conditions = array("tokyo","osaka","osyamanbe"); if(in_array($area,$conditions)){ /* 処理 */ } 配列に関してはそのまま書いてもいいし、テキストに書いているのを読み込むでもなんでもOKですし。

re97
質問者

お礼

回答ありがとうございましたー

その他の回答 (2)

回答No.3

根本的な問題 PHPにおいて文字列比較に「==」は使うのはNG

  • ponta1971
  • ベストアンサー率30% (361/1191)
回答No.1

条件の文字列を配列に入れて条件判定をループ処理し、1回処理したらbreakって感じでどうでしょう。 $jouken = array('tokyo','osaka','nagoya'); for($i = 0;$i < count($jouken);$i++){  if ($area == $jouken[$i]) {   処理;   break;  } } 動作は確認していないですが、こんな感じで。

re97
質問者

お礼

回答ありがとうございましたー

関連するQ&A