- ベストアンサー
変数の一致条件がたくさんあるときの判定の書き方
変数の一致条件がたくさんあるときの判定の書き方を教えてください <例> $areaが、下記の条件判定 tokyo osaka nagoya 現状では、下記のように書いているのですが、 今後、この条件が増えてくる可能性があるので、 そうしたとき、もっとスマートに書きたいです if (($area=='tokyo') || ($area=='osaka') || ($area=='nagoya')) { 処理; }
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
条件要素を配列に入れるのは#1さんと同じだけど、in_array使っちゃってもいいんじゃないかな http://php.net/manual/ja/function.in-array.php $conditions = array("tokyo","osaka","osyamanbe"); if(in_array($area,$conditions)){ /* 処理 */ } 配列に関してはそのまま書いてもいいし、テキストに書いているのを読み込むでもなんでもOKですし。
その他の回答 (2)
- corokorocoro
- ベストアンサー率29% (63/211)
回答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; } } 動作は確認していないですが、こんな感じで。
質問者
お礼
回答ありがとうございましたー
お礼
回答ありがとうございましたー