現在の位置: ホーム> 最新記事一覧> Scripos検索がPHPで失敗し、虚偽を返す状況をエレガントに処理する方法は?

Scripos検索がPHPで失敗し、虚偽を返す状況をエレガントに処理する方法は?

M66 2025-05-13

PHPでは、 StripoS()は、別の文字列に文字列の最初の発生を無感覚に見つけるための非常に一般的な機能です。見つかった場合、 StripOS()は、ターゲット文字列の一致する文字列の開始位置を示す整数を返します。見つからない場合、 Falseが返されます。

ここに問題が発生します。返品は「 0またはfalse 」であるため、条件付き判断で簡単にエラーを犯すことができます。

共通の落とし穴を与えましょう:

 if (stripos($haystack, $needle)) {
    echo "見つかった!";
} else {
    echo "見つかりません!";
}

$針が$ haystack (位置0)の先頭にある場合、 spripos()0を返し、 (0)がfalsとして扱われ、「見つかりません」出力、論理エラーになります!

判断する正しい方法

Stripos()Falseを返す状況を優雅に処理するには、単純なブールの判断ではなく、それが偽であるかどうかを明確に判断する必要があります。

 $pos = stripos($haystack, $needle);
if ($pos !== false) {
    echo "見つかった,場所に:$pos";
} else {
    echo "見つかりません!";
}

合同比較シンボル!==を使用することにより、 0falseを正確に区別できます。

さらなるパッケージ:ガジェット関数を書き込みます

コードをより明確に再利用可能にするために、ヘルパー関数をカプセル化できます。

 function containsIgnoreCase($haystack, $needle) {
    return stripos($haystack, $needle) !== false;
}

// 使用の例
if (containsIgnoreCase("https://m66.net/news", "NEWS")) {
    echo "キーワードを含めます!";
} else {
    echo "不キーワードを含めます!";
}

このようにして、コードを書くことは読みやすく、繰り返しのロジックを減らすことができ、プロジェクトでの広範な使用に非常に適しています。

実用アプリケーション:ユーザーのアクセスソースに特定のキーワードが含まれているかどうかを判断します

ユーザーアクセスのURLにutm_sourceが含まれているかどうかを判断する必要があるとします。