なぜphpの
'00' == '0000'
表現はtrue
?
マニュアルのどこかに説明されていますか?
注:
これ:
数値を文字列と比較する場合、または比較に数値文字列が含まれる場合、各文字列は数値に変換され、比較は数値として実行されます。
この場合には適していません。両方のオペランドが文字列です。
なぜphpの
'00' == '0000'
表現はtrue
?
マニュアルのどこかに説明されていますか?
注:
これ:
数値を文字列と比較する場合、または比較に数値文字列が含まれる場合、各文字列は数値に変換され、比較は数値として実行されます。
この場合には適していません。両方のオペランドが文字列です。
「数値を文字列と比較する場合、または比較に数値文字列が含まれる場合、各文字列は数値に変換され、数値として比較が実行されます。」( PHP マニュアル)
もちろん
== compares values and neglects type
=== compares values and types
はい、これ:
http://php.net/manual/en/language.operators.comparison.php
*更新:
この URL のこの部分をお読みください。
http://php.net/manual/en/function.intval.php
文字列の左端の文字にもよりますが、文字列はほとんどの場合 0 を返します。整数キャストの一般的なルールが適用されます。
この文字列を比較すると、両側がゼロになるため、0 == 0 が true になるため、'00' === '0000'
こちらを使用してみてください。
読むだけ:
[...] 比較に数値文字列が含まれる場合、各文字列は数値に変換され、比較は数値的に実行されます
おそらく邪魔だった部分を取り除きました。
覚えておくのもいいですね
数値を文字列と比較する場合、または比較に数値文字列が含まれる場合、各文字列は数値に変換され、数値として比較が実行されます。これらの規則は、switch ステートメントにも適用されます。比較が === または !== の場合、値だけでなく型も比較するため、型変換は行われません。ここにリンクの説明を入力
でも、みんなの言うことはすべて正しい!