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

    +145.5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if($record->getTitle()) {
      $request->setAttribute('title', $record->getTitle());
    }else{
      $request->setAttribute('title', $record->getName());
    }

    определение существования метода у объекта $record

    Запостил: seroy, 18 Сентября 2009

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

    • Ознакомьтесь сначала с ООП в PHP. Таким способом не определить существование метода у объекта. Если метода нет, то вывалится фатал.
      Ответить
    • Чо за бред? Просто у бъекта record может либо быть свойство title - и тогда нужно использовать его, либо не быть - и тогда использовать св-во name.
      Аффтар поста, учи матчасть
      Ответить
      • $title = $record->getTitle() ? $record->getTitle() : $record->getName();
        $request->setAttribute(\'title\', $title);
        Ответить
        • Думаю автор просто не знал про конструкцию \"? :\"
          Имхо, не такой уж и говнокод.
          Ответить
          • Не знаю, мне кажется, использовать if-then-else даже нагляднее.
            Ответить
          • ну на крайняк так, чтобы избежать копипасты.
            но не критично — согласен. думаю, достаточно часто в рабочих проектах такое встречается.
            if($record->getTitle()) {
            $title = $record->getTitle();
            }else{
            $title = $record->getName();
            }
            $request->setAttribute('title', $title);
            Ответить
            • хе. или даже так:
              $title = $record->getTitle();
              if(!$title) {
              $title = $record->getName();
              }
              $request->setAttribute('title', $title);
              единственный вариант, при котором метод getTitle не вызывается дважды)
              Ответить
              • можно еще так
                if (!($title = $record->getTitle()) {
                $title = $record->getName();
                }
                ...
                Ответить
                • одной скобки не хватает, но да, можно)
                  Ответить
    • А где говнокод?
      Ответить
    • в контексте __get и __set не говнокод
      Ответить

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