Php 带前导零的整数数组-奇怪的结果
编辑:我应该注意到我知道我可以使用引号。谢谢你的回答,我从没听说过八进制 我注意到了一些事情,这更多的是一个好奇的问题,而不是需要帮助。为什么会发生这种情况Php 带前导零的整数数组-奇怪的结果,php,arrays,Php,Arrays,编辑:我应该注意到我知道我可以使用引号。谢谢你的回答,我从没听说过八进制 我注意到了一些事情,这更多的是一个好奇的问题,而不是需要帮助。为什么会发生这种情况 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]
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
)
一旦它达到8,一切都是一团糟。什么原因导致这种情况?前导零的数字被PHP理解为八进制数 如果你不知道八进制数是什么,请阅读。简言之,它们是以8为基数的数字。我们在日常生活中使用的数字是以10为基础的
现在,正如您所指出的,
08
和09
给出了0
。因为它们不是有效的八进制数字。因此,010
实际上是十进制的8
,以此类推。如果您想使用带前导零的整数,您必须将它们存储为PHP中的stings,否则它们可以变成八进制
像这样:
array('01', '02', '03');
一个字。。。。八进制--除非你知道自己在做什么,否则不要给出前导零的数字