ホームページ > バックエンド開発 > PHPチュートリアル > `strpos()` が 0 を返すのはなぜですか? 部分文字列の存在を確実に確認するにはどうすればよいですか?

`strpos()` が 0 を返すのはなぜですか? 部分文字列の存在を確実に確認するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-13 06:09:09
オリジナル
341 人が閲覧しました

Why Does `strpos()` Return 0, and How Can I Reliably Check for Substring Existence?

strpos() の戻り値の特徴を理解する

strpos() を使用して指定された文字列内の部分文字列を検索する場合、考慮することが重要です戻り値の影響。そうしないと、予期しない結果が生じる可能性があります。

問題:

2 つの部分文字列の開始位置を特定し、最初の部分文字列が 2 番目の部分文字列の前に配置されるようにしようとしました。 、プログラマは予期しない動作に遭遇します。コードは、緩い等価比較演算子 (<>) を使用して、ターゲット文字列内の各部分文字列の存在をチェックします。 strpos() の戻り値が false の場合は、部分文字列が見つからなかったことを意味します。ただし、部分文字列が位置 0 から始まる場合、strpos() は 0 を返し、誤って false として解釈されるようです。

解決策:

PHP マニュアルを明示的に参照してください。 strpos() はブール値 FALSE または FALSE と評価される非ブール値 (0 など) を返すことができると述べています。この混乱を避けるために、PHP では、strpos() の戻り値のテストに === 演算子 (厳密な等価) を使用することをお勧めします。

この例では、プログラマは緩やかな等価演算子 (<>) を置き換える必要があります。 ;) strpos() チェックで厳密等価演算子 (!==) を使用します。これにより、比較が期待どおりに動作し、ターゲット文字列内の部分文字列の有無が正しく識別されるようになります。

以上が`strpos()` が 0 を返すのはなぜですか? 部分文字列の存在を確実に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート