- ベストアンサー
PHPの論理演算子で複数の値と一致した場合にtrueを返す方法
- PHPの論理演算子を使用して、複数の値と一致した場合にtrueを返す方法について教えてください。
- 具体的には、変数$sampleの値が01から30のいずれかと一致した場合にtrueを返したいです。
- 現在は条件を || 演算子で繋げていますが、他にも効果的な方法があれば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
数字を01のように書くとバグの温床になりそうなので、 かりに文字列としてチェックすると if(in_array($sample,array('01','02','03','04', ・・略・・,'30')) { echo "<p>条件に合っています。</p>"; } else { echo "<p>条件以外です。</p>"; } となります。 もし$sampleが数値で、検査範囲が連番であればrange()など使えるかもしれません if(in_array($sample,range(1,30)){ echo "<p>条件に合っています。</p>"; } else { echo "<p>条件以外です。</p>"; }
その他の回答 (1)
- ts3m-ickw
- ベストアンサー率43% (1248/2897)
良くないと思います。 それが動くphpがあるなら知りたいところですね(使いたいとは言わない)。 if ($sample=="01" or $sample=="02" or $sample=="03" or ‥‥ $sample=="30") と長~く並べるか、 比較対象の値を配列に格納し、in_array関数を使うのがよろしいでしょう。 http://www.php.net/manual/ja/function.in-array.php
お礼
すいません。 No1の方のご教授で記述法が分かりました ありがとうございました。
補足
早々のご教授ありがとうございます。 では、 <?php $code = array("01", "02", "03",・・・, "30"); if (in_array($sample, $code)) { echo "正しい"; } else { echo "間違い"; } ?> in_array関数 を使うと $sample, $codeが 比較一致した場合 True となると考えていいのでしょうか。 ご多忙のところ大変恐縮ですが 合わせてご教授賜りますようお願いいたします。
お礼
早々のご教授 ありがとうございます。 in_array関数を活用してみます。 ご指導ありがとうございました!!