"PHP" / Говнокод #5001 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
if (5 < strlen($method) && '_init' === substr($method, 0, 5)){
    $this->_classResources[strtolower(substr($method, 5))] = $method;
}

ZendFramework (c)

Запостил: Bydlo Bydlo, (Updated )

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

  • "Метод - как строка, и строка как метод", - искренне Ваш PHP
    Ответить
    • >Метод - как строка, и строка как метод
      ну это реализуемо и в статических языках, например в жабке.
      Ответить
          • и в чем проблема? я тоже всегда ставлю строку перед сравниваевым значением - это помогает избежать присваивания в условии
            Ответить
            • здесь чуть-чуть другое.
              Коментом ниже правильно замечено, что вместо === хватило бы и ==
              так как:
              во-первых '_init' стоит вначале, что намекает на молчаливом преобразовании сравниваемого значения к строковому типу;
              во-вторых substr так и так возвращает строку
              Ответить
              • Коммент ниже мой 🙂 Int имел ввиду, что слева в сравнении стоит строковой литерал, что на первый взгляд может показаться нелогичным, а я объяснил из каких соображений это делают. На самом деле, в приведённом примере это неважно, так как сравнивается с функцией и ошибка присваивания в любом случае будет видна (если она будет). Скорее всего, автор поместил строковой литерал слева чтобы поддерживать целостность своего кода, так как видимо он во всех сравнениях помещает литералы слева. Ну а строгое сравнение с проверкой типа здесь, конечно же, не нужно.
                Ответить
                • Лично мне такие условия сложно в голове преобразовывать, особенно if (2 < $a), лично я не сразу в голове преобразовываю в "а больше двух", приходится лишнее действие делать
                  Ответить
                  • поначалу мне тоже было сложно воспринимать, а сейчас нормально читаю, это лишь вопрос практики.
                    Ответить
              • И, собственно, я удивлён, что из всего говнокода ZF был выбран только этот кусочек, в котором говнокода практически и нет 😀
                Ответить
      • вот единственное, что мне нравится в пыхе, так это возможность написать
        $object->$method()
        а в той же жабке пришлось бы рефлекшн юзать
        Ответить
  • - А жопка у тебя вообще зачётная. Натренировал, еб. Такую только ебать не переебать, - как бы просто так он дал мне, надо полагать, лестную оценку.
    Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8