Дмитрий Сергеевич (axshavan) wrote,
Дмитрий Сергеевич
axshavan

PHP: unreachable array indexes

Это просто ёбаный пиздец. В мануале PHP напиcано, дескать, при образении к элементу массива, если строка содержит валидный интеджер, то тип данных будет интеджер. Также в интеджер превращаются булы и флоаты. Казалось бы, ничего страшного, да? $a["999"] и $a[999] одно и то же, и все этим спокойно пользуются, это один и тот же элемент массива. Но нет, всё не так. Зацените:
<?php
$a = new stdClass();
$a->{"1"} = 'foo';
$a = (array)$a;
$a["1"] = 'bar';
print_r($a);

Как думаете, что выводит? Неееееет :)
Array
(
    [1] => foo
    [1] => bar
)

Одна единичка - это строка, другая - это интеджер. Можно убедиться в том самостоятельно, скормив array_keys($a) в var_dump(). Наблюдалось мной лично в PHP 5.3.10, 5.4.31 и 5.5.3. Ох уж мне это похапе :)

Оригинал записи http://blog.axshavan.cz/2014/09/php-unreachable-array-indexes.html
Tags: web, хабр
Subscribe

  • Баловство с картинками

    Долгие годы разглядывая разные фотографии в разных местах, я пришёл к выводу, что выигрышно смотрятся такие фотки, у которых есть два, скажем так,…

  • Заметка про джаваскрипт

    Больше часа потратил всяким гугленгием и экспериментами, и в итоге всё равно пришлось придумывать обходной маршрут. Проблема такая. Есть некий кусок…

  • Плёнка №174 - кафенол

    Когда я впервые услышал про проявку фотоплёнок в кофе, я подумал, что это шутка. Ну как можно проявлять плёнки в том, что мы пьём? Но, тем не менее,…

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 12 comments

  • Баловство с картинками

    Долгие годы разглядывая разные фотографии в разных местах, я пришёл к выводу, что выигрышно смотрятся такие фотки, у которых есть два, скажем так,…

  • Заметка про джаваскрипт

    Больше часа потратил всяким гугленгием и экспериментами, и в итоге всё равно пришлось придумывать обходной маршрут. Проблема такая. Есть некий кусок…

  • Плёнка №174 - кафенол

    Когда я впервые услышал про проявку фотоплёнок в кофе, я подумал, что это шутка. Ну как можно проявлять плёнки в том, что мы пьём? Но, тем не менее,…