为什么下面给出的输出之间存在差异?

时间:2011-02-09 05:39:09

标签: php

$y = 07;
echo 'Y: '.$y; // result is 7
$y = 08;
echo 'Y: '.$y; // result is 0

view demo

:编辑:

还有一个类似的

$y = 013;
echo $y + 5; //this result in 16

我无法弄清楚它的ans是16吗?任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:6)

第1部分

解析规则在Integers Documentation中解释。

在PHP中,以0开头的数字假定为八进制。因为八月份的08无效,所以你得到0。

第2部分

同样的问题在起作用,Octal的013是十进制的11和11 + 5 = 16

答案 1 :(得分:0)

在php中,整数变量采用八进制。

http://www.ascii.cl/conversion.htm

显示此链接对您有用。我想。