正面有0的数字?

Jar*_*rek -7 php math function

我有功能

$x = 012; 
echo $x / 3; 
Run Code Online (Sandbox Code Playgroud)

为什么结果是3.33333?

但如果我使用:

$x = '012';
Run Code Online (Sandbox Code Playgroud)

那是对的.问题是如何解释这个?

Jim*_*Jim 6

前缀为0的数字被视为八进制数:

$x = 012;//$x is 10
Run Code Online (Sandbox Code Playgroud)

细节在这里

可行的原因$x = '012';是因为PHP将其转换为整数而不将其视为八进制数.