ホームページ >バックエンド開発 >PHPチュートリアル >PHP での数値と文字列の比較
PHP の比較演算子は少し奇妙で間違いやすいです。比較ルールは次のとおりです:
1. 2 つの文字のサイズを比較する場合、2 つの文字の ASCII コード サイズが比較されます。わかりやすいですね。
2. 2 つの文字列のサイズを比較する場合、最初の文字から開始して、対応する特定の位置から開始する限り、一方の文字列の現在位置の文字が他方の文字列よりも大きくなります。は位置文字に対応します。つまり、「ba」>「az」など、2 つの文字列のサイズを直接決定できます。これは誰もが知っています。
次に「10」と「a」を比較します。もちろん同じです。まず「1」と「a」の ASCII コードを比較します。「a」の方が大きいです。
3. 数値を文字列/文字と比較する場合、システムはまず文字列/文字を整数/浮動小数点型に変換しようとし、次にそれを比較します。たとえば、「12bsd」は 12, ' に変換されます。 a ' 0 に変換されますが、この時点では、対応する ASCII コード値は数値と比較されないことに注意してください。
実際、同じ理由が当てはまり、「a」+10 の結果も 10 になります。
そして、無視するのは簡単です。数値に変換できない文字列と比較すると、0 は true を返します (演算子は ==)。
最終的に次の結果が表示されます:
1 var_dump('1000000'<'a'); //result: boolean true2 var_dump('a'<1); //result: boolean true3 var_dump(1<'1000000'); //result: boolean true
私自身のインスタンス:
<?php var_dump('你妹'>='你大爷');?>
出力結果: boolean true
中国語の文字は、最初に Gbk または utf-8 によってトランスコードされ、中国語の文字は最下層で文字に変換