Я столкнулся с чем-то странным.
У меня есть php-массив, индексированный цифровыми ключами. Однако невозможно получить доступ к любому из элементов, потому что php автоматически обрабатывает числовые строки как целые числа, вызывая уведомление о недопустимом смещении.
В нормальных условиях его невозможно создать php-массив с числовыми индексами строк, но это может произойти с типом casting.
Воспроизведение:
$object = new stdClass();
$object->{'1'} = 'one';
$array = (array) $object;
var_dump($array);
/* produces
array(1) {
["1"]=>
string(3) "one"
}
*/
//none of the following will work
$key = '1';
echo $array[1], $array['1'], $array["1"], $array[(string)1], $array[$key];
Это просто ошибка в кромке? Я столкнулся с проблемой при попытке улучшить свой ответ для другого вопроса SO
Пример живого кода: http://codepad.viper-7.com/dFSlH1