首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么表达式011 == 11计算为假?

为什么表达式011 == 11计算为假?
EN

Stack Overflow用户
提问于 2016-07-30 11:46:41
回答 1查看 481关注 0票数 10

当我在php中练习时,我注意到以下表达式产生了奇怪的结果:

代码语言:javascript
运行
复制
011 == 11   // false
'011' == 11 // true

他们不是应该对相同的结果进行评估吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-30 11:47:11

这是因为011由于领先的0而被视为八进制值。

下面是更深入的解释:

  1. 011文本被识别为八进制值。
  2. 然后将转换为十进制值,这等于9
  3. 进行实际比较,如下所示:9 == 11 // false

'011' == 11中,它的计算结果为true,因为当字符串与整数比较时,它也被胁迫为整数值。有趣的是,字符串中的前导零在进程中被忽略,而php解释器将该值视为为十进制,而不是八进制

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38673584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档