aswww log

Webエンジニアの技術録。Linuxとかウェブ制作・ソフト開発とか

Stringの文字列中に複数個の文字列が一個でも含まれている場合、continueする

Q.$taisyoStringの文字列中に"ダメ"または"いらない"文字が含まれている場合、continueするphpプログラムを書きなさい。

A.
phpの文字列検出系関数の中で一番処理効率がいいのはstrpos関数らしいのでできるだけそれを使う。

  • 回答1.一番シンプルif文だけ
const DAME_MOJI="ダメ";
const IRANAI_MOJI="いらない"

if(strpos($taisyoString, self::DAME_MOJI) !== false or strpos($taisyoString, self::IRANAI_MOJI) !== false){
    continue;
}
  • 回答2.php5.6からconstでarray使えるようになったらしいからarrayで定義
const HUYOU_MOJIS = array("ダメ","いらない");

foreach(self::HUYOU_MOJIS as $huyouMoji){
   if(strpos($taisyoString, $huyouMoji) !== false){
        continue 2;
    }
}
  • 回答3.preg_matchで判断。一番短くてすむ
const HUYOU_MOJIS = "ダメ|いらない";

if(preg_match($taisyoString, self::HUYOU_MOJIS) === 0){
    continue;
}
//もちろん3項演算子でも可

and etc...