strpos() の戻り値の特徴を理解する
strpos() を使用して指定された文字列内の部分文字列を検索する場合、考慮することが重要です戻り値の影響。そうしないと、予期しない結果が生じる可能性があります。
問題:
2 つの部分文字列の開始位置を特定し、最初の部分文字列が 2 番目の部分文字列の前に配置されるようにしようとしました。 、プログラマは予期しない動作に遭遇します。コードは、緩い等価比較演算子 (<>) を使用して、ターゲット文字列内の各部分文字列の存在をチェックします。 strpos() の戻り値が false の場合は、部分文字列が見つからなかったことを意味します。ただし、部分文字列が位置 0 から始まる場合、strpos() は 0 を返し、誤って false として解釈されるようです。
解決策:
PHP マニュアルを明示的に参照してください。 strpos() はブール値 FALSE または FALSE と評価される非ブール値 (0 など) を返すことができると述べています。この混乱を避けるために、PHP では、strpos() の戻り値のテストに === 演算子 (厳密な等価) を使用することをお勧めします。
この例では、プログラマは緩やかな等価演算子 (<>) を置き換える必要があります。 ;) strpos() チェックで厳密等価演算子 (!==) を使用します。これにより、比較が期待どおりに動作し、ターゲット文字列内の部分文字列の有無が正しく識別されるようになります。
以上が`strpos()` が 0 を返すのはなぜですか? 部分文字列の存在を確実に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。