ホームページ >バックエンド開発 >PHPチュートリアル >位置 0 から始まる文字列に対して `!== false` を指定して `strpos()` をチェックすると失敗するのはなぜですか?

位置 0 から始まる文字列に対して `!== false` を指定して `strpos()` をチェックすると失敗するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-16 10:42:12352ブラウズ

Why Does Checking `strpos()` with `!== false` Fail for Strings Starting at Position Zero?

strpos() の戻り値を緩くチェックすると意図しない結果が生じる

別の文字列内で文字列の出現箇所を特定しようとすると、使用時に不一致が発生する可能性があります。 strpos() 関数。 2 つの文字列が存在するかどうかをチェックし、!== false を使用して最初の文字列が 2 番目の文字列よりも前にあることを確認するという意図された動作は、予期しない結果を引き起こす可能性があります。

PHP マニュアルに記載されているように、文字列が存在しない場合、strpos() は false を返します。見つかった。ただし、文字列が位置 0 で始まる場合 (strpos() の戻り値が 0 になる場合)、ステートメント strpos($grafik['data'], $ss1) !== false は false として評価される可能性があります。

これを修正するには、コード内の !== false を === 0 に置き換えます。この変更により、strpos() が 0 を返し、その文字列が指定された文字列の先頭に存在することを示すときにステートメントが true に評価されるようになります。

以上が位置 0 から始まる文字列に対して `!== false` を指定して `strpos()` をチェックすると失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。