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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
public function getBrandId() {
        if (key_exists("id", $_GET)) {
            return $_GET['id'];
        } else {
            return false;
        }
    }

Писала значимая фигура студии, между прочим.

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

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

    • читабельность твоего кода дерьмовая стремится к нулю и сложен в поддержке...
      Ответить
      • и что тут такого нечитабельного?
        тернарный оператор для того и придумали, чтобы не расписывать на несколько строчек элементарные действия.
        можно согласиться, если внутрь вставлены какие-то вычисления или вложенные тернарные операторы, но здесь не тот случай...
        Ответить
      • Т.е. куча таких тупых строк нормально?
        Не надо показывать свою глупость
        Во многих нормальных фреймворках такие операторы используются очень часто в столь примитивных потребностях
        Ответить
        • смотрим пример функции из Drupal 7
          function variable_get($name, $default = NULL) {
          global $conf;

          return isset($conf[$name]) ? $conf[$name] : $default;
          }
          Ответить
    • Не используйте isset в массивах, когда не уверены в значениях
      Ответить
      • Почему?
        Прежде чем давать такой комментарий, его необходимо обосновать.
        Разве что значение NULL
        Но на кой черт оно надо? Если нужен ID товара? Тип int.
        Ответить
        • С массивами это актуально. Даже если значение null - элемент влияет на длину массива
          Ответить
          • Пускай оно посмотрит что там не существует переменной поскольку она NULL
            Но сам смысл функции "getBrandId"
            Получить ID бренда.
            Возвращаемое значение должно быть INT
            На кой хрен нужен NULL? Тут и FALSE прекрасно подойдет!
            Код нужно писать по потребностям, а не потому что там может быть NULL, который нахрен не нужен на выходе этой функции.

            Тогда если судить по логике что там может быть NULL надо писать
            if (key_exists("id", $_GET) && is_numeric($_GET['id']) && ((int)$_GET['id'] > 0)) {
            return $_GET['id'];
            } else {
            return false;
            }
            Ответить
    • да как раз таки пыхапе стайл
      непонимание типизации
      неуменье пользоваться фрейм-ворками
      и вообше значимая фигура в мире ПХП равно дебил
      Ответить
      • Много раз видел что-то типа
        if() return true; else if() return "ololo"; else if() return $arr; else if() return -1;
        и в таком же духе. Это, очевидно, следствие злоупотребления объебосатами.

        Что касается значимых фигур (ферзей штоле?), то, чаще всего, чем выше девелопер, тем больше у него моск рака.
        Ответить
  • функции key_exists в стандартных функциях php нет. Это опечатка и там array_key_exists или всё-таки свою функцию сделали?
    Ответить
    • Скорее всего обертка над array_key_exists - думаю, человек очень много ей пользуется и ему в лом много печатать.
      Ответить
      • человек недостаточно ленив для программиста!
        даешь function ake()
        Ответить
    • Для обратной совместимости может быть использован следующий устаревший псевдоним: key_exists()
      php.net/array_key_exists
      Ответить
  • Пробовать лень, из праздного любопытства, а что PHP возвращает по-умолчанию, например:
    function f(){}
    $foo = f();

    Что будет в foo?
    Ответить
  • По-моему, здесь все очевидно - автор кода оставил заглушку на получение идентификатора. На будущее, так сказать, чтобы потом уже дополнить ее проверками на существование указанного id и прочего. Этим, кстати, объясняется, почему не используется более короткий тернарный оператор - действий на проверку может быть много, их удобнее вносить внутри скобок, чем писать в строчку.
    ИМХО, довольно продуманный подход. С планами на будущее.
    Ответить
  • Блин, ну не говнокод же. Почитайте про isset, он с массивами иногда выдает неправильные результаты (если значение === null). Все правильно сделано
    Ответить
      • интересно, как может из формы прийти null?
        так что в данном случае замечание несущественно.

        хотя в общем случае это надо учитывать,да
        Ответить
        • Вас не смущает, что у них логика работы разная?
          isset -> проверяет установку переменной
          array_key_exists -> проверяет ключ массива
          Не важно, что первый вариант короче. Нужно всегда использовать правильную функцию.
          И да, из формы может прийти null. Если форма отправляется аяксом. А это очень часто происходит.
          Ответить
          • надо, если различия существенны.
            меня обычно empty устраивает (да, 0 и "" тоже неинтересны)
            Ответить
  • д"G C(S)CO)K)M$E(Z AA)B(LI,K M?G!S.Q?N"A)O?W"F(M RO!Y!L)O(C)F"S"M,G!Y)H?O V$Z,P.F$Q!J!A.C"I)G,Q!J"A.O(F"Q,T Q(O)N:E$A)H(U.V"B:X!W(F"K RJ:DV"E"I"VO"K:Z"Y)Z.A!T!M(U N?W?J"I.T)A J"T I?O!T(N?Z.K L?EF)U,N!W?D)J:A!Q.W,G,R(G$F$J.Y(G"TC,K?Q(I"W!X)D)X Z C?S,K:M?W"G:H?E"Y.G$R!X D$D N.V C!Q(Z!L(I.HX?R$J L$KQ I)V?M"B?BN?F)C"W"A NS"Z(P Y)NW)Y$F.N.IB?O O$J"P:U:G"I?V"P:ON(E:S?J:N:Q,G?V?D"M,JH)P:U,E?M(VB)M(T$M(I(U:D,K S!Z$E(V.LT F?J)Z.S?V!P)Z F(M)U T!N$G$C!M!X V M!D"Y:T$E O"L L!YKM"S.F,Q!S(M!L.R,F"TМYMJZDTHMOJMUTOQN
    Ответить

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

Из-за тебя ушел bormand, guest!

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


    8