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

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    /**
       * Get or instance self object
       *
       * @return self object
       */
      public static function get_object () {
        // call as static
        static $storage;
        // check inited object
        if ( !isset($storage) ) {
          // init object
          $storage = new self();
        }
        // return object
        return is_object($storage) ? $storage : false;
      }

    NetCat не перестает удивлять.
    Вы только посмотрите на последнюю строчку метода
    :D

    Запостил: miraage, 30 Мая 2011

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

    • Синглтон какой-то. Но возвращать в зависимости от погоды то объект то булеан эт конечно ГК.
      Ответить
      • если возвращать, то нулл наверно было бы правильнее?)
        Ответить
        • Правильнее storage проинициализировать при объявлении нулом и вернуть его в любом случае, а не лепить тернарный оператор.
          Ответить
          • ПОСОНЫ я хуйню сморозил дикую походу. Не заметил сразу.
            Скажите пожалуйста, что на ПЫХЕ означает "static $storage;" внутри тела функции?
            Такового не видел. Кажется более чем странным.
            Ответить
            • статичная переменная внутри функции. сохраняет своё значение между вызовами функции. в первом комментарии ты правильно сказал, что тернарный оператор не нужен
              Ответить
          • get_object(), по русски это следует понимать как "получить объект". Соответственно, нужно возвращать или объект или ничего(null). Я думаю, так было бы правильнее. Ну это если возвращать с такими извратами. А вообще, согласен с Вами
            Ответить
      • А как вы вообще себе представляете вариант, когда там вернется false? Или, если, ну, предположим, закончилась память, и new не сработал, то что, не будет ошибки и функция продолжит выполнятся?
        Кроме того, я так подозреваю, что static в этом случае распростаняется только на область видимости функции (? или вообще, что он там делает), или в PHP можно как-то статическую переменную объявить внутри метода?
        Ответить
    • динамическая типизация - такая типизиция
      Ответить
    • Ключевое static - не, не слышал?
      Синглтон - а що це таке?
      Ну это проблемы автора и ещё 8 человек
      Ответить
      • если ты не понял, то тернарник не нужен. можно просто вернуть $storage.
        Ответить

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