電子書籍の厳選無料作品が豊富!

変数の一致条件がたくさんあるときの判定の書き方を教えてください

<例>
$areaが、下記の条件判定
tokyo
osaka
nagoya

現状では、下記のように書いているのですが、
今後、この条件が増えてくる可能性があるので、
そうしたとき、もっとスマートに書きたいです
if (($area=='tokyo') || ($area=='osaka') || ($area=='nagoya')) {
 処理;
}

A 回答 (3件)

条件要素を配列に入れるのは#1さんと同じだけど、in_array使っちゃってもいいんじゃないかな


http://php.net/manual/ja/function.in-array.php

$conditions = array("tokyo","osaka","osyamanbe");
if(in_array($area,$conditions)){
/* 処理 */
}

配列に関してはそのまま書いてもいいし、テキストに書いているのを読み込むでもなんでもOKですし。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/12/28 11:58

根本的な問題


PHPにおいて文字列比較に「==」は使うのはNG
    • good
    • 0

条件の文字列を配列に入れて条件判定をループ処理し、1回処理したらbreakって感じでどうでしょう。



$jouken = array('tokyo','osaka','nagoya');
for($i = 0;$i < count($jouken);$i++){
 if ($area == $jouken[$i]) {
  処理;
  break;
 }
}

動作は確認していないですが、こんな感じで。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/12/28 11:58

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