一尘不染

php数组的键值07和08行为异常

php

我有一个阵列几个月

$months[01] = 'January';
$months[02] = 'February';
$months[03] = 'March';
$months[04] = 'April';
$months[05] = 'May';
$months[06] = 'June';
$months[07] = 'July';
$months[08] = 'August';
$months[09] = 'September';
$months[10] = 'October';
$months[11] = 'November';
$months[12] = 'December';

现在,数组无法为键07&输出正确的值08

尝试这样做,print_r($months)您将不会获得的任何键值August和零键索引September

尽管我可以通过删除前导零来解决问题,但我还是想知道原因。

甚至PHP编辑器也发现了一些问题,但无法分辨出问题所在。

谢谢


阅读 227

收藏
2020-05-26

共1个答案

一尘不染

在数字前加0表示PHP将其解析为八进制值,与在前缀0x之前将其解析为十六进制值的方式相同。删除零,它将正常工作。

echo 07; // prints 7
echo 010; // prints 8

在指定UNIX权限时,通常使用此命令:

chmod("myfile", 0660);

除此之外,您几乎不需要执行任何操作。

PHP手册中对此进行了描述。

2020-05-26