1. PHP / Говнокод #14563

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    class Z {
       public function __toString() { return 'zzzzzzzz'; }
    }
    
     $zz = array();
     $zz[call_user_func_array('sprintf', array('%s', new Z))] = 1;

    нахуй так жить?

    Запостил: __proto__, 13 Февраля 2014

    Комментарии (14) RSS

    • показать все, что скрытоЗатем, чтобы обсасывать терпкий хуй горячего и потного мустанга техасских прерий.
      Ответить
    • А в чём проблема?
      Ответить
      • показать все, что скрытоВ том, что ты педераст.
        Ответить
      • Скорее всего в извращениях с call_user_func_array('sprintf', array('%s', $z)) вместо sprintf('%s', $z), которое, в свою очередь заменяется на банальное (string)$z :)
        Ответить
        • показать все, что скрытоЛакни мои яйца.
          Ответить
          • Микроскоп сразу неси, ато невооруженным глазом не увидит.
            Ответить
        • Как мне показалось, автор добавил эти все сложности, чтоб показать как после new Z инстанс превращается в строку.

          Возможно это автор понял почему предыдущий ГК сработал и заплатил объяснение сюда.

          Но я могу и ошибаться, по этому спросил.
          Ответить
          • Не, если вставлять напрямую $zz[new Z] = 1 - ругается что Illegal offset type, и ничего не вставляет.

            Очень удивительно, но в данной ситуации пых не делает каст сам :)
            Ответить
            • Не много настойчивости мой друг и у тебя все получится https://ideone.com/wo4u6Z
              Ответить
              • Не, так то само собой сработает :) Но это явное указание, а не самовольство пыхи.
                Ответить
                • Пых на вреное не знает во, что точно кастовать, ключем может быть и число. Вот требуется объяснить.
                  Ответить

    Добавить комментарий