请知悉:本文最近一次更新为 5年 前,文中内容可能已经过时。

请问如下代码输出什么

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也是可以的。


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《PHP 字符串比较》相关的博文:


留言

avatar
😀
😀😁😂😅😭🤭😋😘🤔😰😱🤪💪👍👎🤝🌹👌