我有一个阵列几个月

$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';

现在,数组无法为0708键输出正确的值。

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

尽管我可以通过删除前导零来解决问题,但我还是很想知道造成这种情况的原因。

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

谢谢

最佳答案

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

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

在指定UNIX权限时,通常使用此命令:
chmod("myfile", 0660);

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

这在PHP Manual中进行了描述。

关于php数组的键值07和08行为异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4750781/

10-11 14:11