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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    class store_mod_multi_ftp extends store_mod_ftp {
        public function __construct($options) {
            //...
        }
        protected function connect($url, $login) {
            parent::__construct($url, $login);
        }
        //...
    }

    ФТП-мод, который умеет стягивать файлы с разных серверов сразу, в отличие от своего родителя. И ведь работает, зараза!

    Запостил: Lowezar, 14 Марта 2012

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

    • А в С++ так нельзя... Т_Т

      Хотя...
      void connect( const char *host, int port )
      {
        this->~CFtpBar();
        new (this) CFtpBar(host, port);
      }

      :D
      Ответить
      • не, там без деструктора.

        почему так можно в пхп? так в нем нет конструкторов, а, скорее, коллбеки. поэтому повторный вызов ничего не ломает - это просто метод.
        Ответить
        • Именно так. __construct() - это просто метод, вызывающийся автоматически после создания объекта (при чём некоторые библиотеки могут влезть между созданием объекта и вызовом __construct()), так же как и __destruct() перед уничтожением garbage collector-ом... Так что всё абсолютно легально и работает. Но это-ж пипец. :)
          Ответить
    • показать все, что скрытоvanished
      Ответить

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