请问如下代码输出什么
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也是可以的。
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。