2016-04-24 13 views
-2

私は、MySQLデータベースの特定のフラグがPHPでチェックされているシステムを作りようとしています。特定の文字が文字列内にあるかどうかを確認するには、関数strpos()を使用します。チェックしている文字が文字列の最初の文字である場合、関数は0を返します。しかし、この結果はfalseのブール値と同義であるようです。私は以下のコードでこの理論をテストした:PHP 0と曖昧な曖昧さ

if(0 == false){ 
    echo 'true'; 
} 

低く、これが真と評価され、ブロック内の出力をエコー見よ。だから、インデックス0にある文字と文字列の一部ではない文字を区別する論理的な方法はありますか?基本的には、フラグ文字列の先頭にアンダースコアのような文字を追加することでした。この方法では、意味のある文字は関数の戻り値のインデックス0にはありません。それは物事を修正するための非常に汚いパッチのような方法のようだ。あなたが他のアイデアを持っているなら、私はあなたの助けに非常に感謝します。 読んでいただきありがとうございます。

+0

は、なぜあなたは 'strpos'出力に '1'だけの簡単な追加しないでください。! –

+0

マニュアルは良いリソースです。これは緩い/厳密な比較から期待できるものを示しています:http://php.net/manual/en/types.comparisons.php – JimL

+0

Umm @ UmairShahYousafzai: 'echo(false + 1 ); ' – AbraCadaver

答えて

1

使用===

if(0 === false){ 
    // will never be true 
    echo 'true'; 
}