5

質問Type-juggling and (strict) greater/lesser-than comparisons in PHP から

PHP は可能な限り文字列を数値として解釈することを知っています。

"10" < "1a"  => 10 less than 1      expecting  false 
"1a" < "2"   => 1 less than 2       expecting  true
"10" > "2"   => 10 greater than 2   expecting  true

しかし"10" < "1a"phpの場合はtrueを返します。

概念を理解していません。明確にするのを手伝ってください。

編集:

しかし、追加する"10" + "1a"と 11 が返されます。これは、php が "10" を 10 として、"1a" を 1 として解釈することを意味します。それは正しいですか?

4

5 に答える 5

6

A は 9 の後に来ます。これは、低いものから高いものへと並べ替えられたこの文字列で確認できます。

0123456789abcdefghijklmnopqrstuvwxyz

したがって、10 は 1a よりも小さいです。

于 2013-11-01T09:34:57.157 に答える
0

おそらく、最初に正規表現を使用する必要がありますか?

例えば:

$str = '1a';
$str = preg_replace ("/[^0-9\s]/","", $str);
var_dump((int)$str); // int 1
于 2013-11-01T09:47:08.767 に答える