请问如下代码输出什么?

var_dump("1000M" > "500M");
var_dump("800M" > "500M");
var_dump("4.0K" > "500M");
var_dump("4.0" > "500M");
var_dump("4000000000000000000" > "500M");

输出结果:

bool(false)
bool(true)
bool(false)
bool(false)
bool(false)

也就是说只有

var_dump("800M" > "500M");

这种情况是true。

当然,这种写法本身就是智障写法,判定数字的话,应该是int的,而预期肯定不是判定字符串。由此而来,根源为什么会true?
因为字符串比较的时候,是逐字符进行的,所以才会出现这样的情况,同理,第一个字符比5大,都是可以的。比如A00M也是可以的。

Related Posts: PHP 字符串比较 :

avatar