это более просто.

я есть массив на месяцы

$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 обнаруживает некоторую проблему, но не может сказать, в чем проблема.

Спасибо

Ответы на вопрос(2)

целое число буквальное это важно.

Видите структуру для десятичных литералов? Обратите внимание, что предыдущий ноль не является частью этого шаблона?

Либо вы должны удалить нули, либо трактовать ключи массива как строки

$months['01'] = 'January';
$months['02'] = 'February';
// etc...
Решение Вопроса

что PHP анализирует его как восьмеричное значение таким же образом, что при добавлении 0x его анализируют как шестнадцатеричное значение. Уберите ноль, и все будет работать нормально.

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

Это в основном используется при указании разрешений Unix:

chmod("myfile", 0660);

За исключением того, что это редко что-то, что вы хотели бы сделать.

Это описано вРуководство по PHP.

 Maanas Royy22 янв. 2011 г., 10:29
Спасибо, это все объясняет.

Ваш ответ на вопрос