带有前导零的整数数组 - 奇怪的结果

Rob*_*ert 2 php arrays

编辑:我应该注意到我知道我可以使用引号.谢谢你的回答,我从未听说过Octals.

我注意到了一些事情,这更像是一个好奇的问题,而不是需要帮助.为什么会这样?

print_r(array(00,01,02,03,04,05,06,07,08,09,010,011,012,013,014,015,016,017,018,019,020));

Array
(
    [0] => 0
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [5] => 5
    [6] => 6
    [7] => 7
    [8] => 0
    [9] => 0
    [10] => 8
    [11] => 9
    [12] => 10
    [13] => 11
    [14] => 12
    [15] => 13
    [16] => 14
    [17] => 15
    [18] => 1
    [19] => 1
    [20] => 16
)
Run Code Online (Sandbox Code Playgroud)

一旦达到8,一切都搞砸了.是什么导致这个?

nis*_*eri 6

带前导零的数字被PHP理解为OCTAL数字.

如果你不知道什么是OCTAL数字,请阅读维基百科.简而言之,它们是基数为8的数字.我们在日常生活中使用的数字是10个.

现在,正如你所说,0809给出0.因为它们不是有效的Octal numbres.因此010实际上8是十进制,依此类推.