当我在php中练习时,我注意到以下表达式产生了奇怪的结果:
011 == 11 // false
'011' == 11 // true
他们不是应该对相同的结果进行评估吗?
发布于 2016-07-30 11:47:11
这是因为011
由于领先的0
而被视为八进制值。
下面是更深入的解释:
011
文本被识别为八进制值。9
。9 == 11 // false
在'011' == 11
中,它的计算结果为true
,因为当字符串与整数比较时,它也被胁迫为整数值。有趣的是,字符串中的前导零在进程中被忽略,而php解释器将该值视为为十进制,而不是八进制!
https://stackoverflow.com/questions/38673584
复制相似问题