文字列に特定のフレーズが含まれていないかどうかを確認するにはどうすればいいですか? 質問する

文字列に特定のフレーズが含まれていないかどうかを確認するにはどうすればいいですか? 質問する

関数を反転する方法PHP で文字列に特定の単語が含まれているかどうかを確認するにはどうすればよいですか?

if (strpos($a,'are') !== false) {
    echo 'true';
}

つまりtrueareないで見つかりました$a

ベストアンサー1

ここのコード:

if (strpos($a, 'are') !== false) {
    // The word WAS found
}

文字列内に単語 WAS が見つかったことを意味します。NOT (!) 演算子を削除すると、条件が反転します。

if (strpos($a, 'are') === false) {
    // The word was NOT found
}

=== は非常に重要です。なぜなら、 strpos は、単語 'are' が文字列の先頭にある場合は 0 を返しますが、0 は大まかに FALSE に等しいため、何が間違っているのかを見つけようとするとイライラするからです。=== 演算子は、結果がブール値の false であって 0 ではないかどうかを文字通りにチェックします。

例えば、

if (!strpos($a, 'are')) {
    // String Not Found
}

このコードでは、$a = "are you coming over tonight?" の場合、文字列 'are' が見つからないと表示されます。これは、'are' の位置が 0、つまり文字列の先頭であるためです。これが、=== false チェックを使用することが非常に重要である理由です。

おすすめ記事