正面有0的数字?

时间:2014-06-25 11:16:03

标签: php function math

我有功能

$x = 012; 
echo $x / 3; 

为什么结果是3.33333?

但如果我使用:

$x = '012';

然后是对的。问题是如何解释这个?

2 个答案:

答案 0 :(得分:6)

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

$x = 012;//$x is 10

Details here

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

答案 1 :(得分:2)

零的数字是八进制数。所以012是八进制数。

来自PHP manual

$a = 0123; // octal number (equivalent to 83 decimal)