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

Poo*_*att 3 php

$y = 07;
echo 'Y: '.$y; // result is 7
$y = 08;
echo 'Y: '.$y; // result is 0
Run Code Online (Sandbox Code Playgroud)

查看演示

:编辑:

一个更相似的

$y = 013;
echo $y + 5; //this result in 16
Run Code Online (Sandbox Code Playgroud)

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

Bre*_*ker 6

第1部分

解析规则在整数文档中进行了解释.

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

第2部分

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