2011-02-09 37 views
4
$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 

我无法弄清楚它怎么答为16?任何人都可以帮忙吗?

+0

是否有一个原因是你的数字预先加0? – 2011-02-09 05:43:01

+0

@Brian Driscoll:没有理由......通过浏览一些与php相关的问题,我发现了这个问题。 – 2011-02-09 05:45:23

回答

6

第1部分

用于解析规则在Integers Documentation进行说明。

在PHP中,以0开头的数字假定为Octal。由于08八进制是无效的,你越来越0

第2部分

同样的问题在玩,013八进制是十进制11和11 + 5 = 16

+0

Alker。一个资料性的回答 – 2011-02-09 05:45:41