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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ($type=='input') $params['class'] = 'styleInput';
    if ($type=='password') $params['class'] = 'stylePassword';
    if ($type=='checkbox') $params['class'] = 'styleCheckBox';
    if ($type=='select') $params['class'] = 'styleSelect';
    if ($type=='multipleSelect') $params['class'] = 'styleMultipleSelect';
    if ($type=='textarea') $params['class'] = 'styleTextarea';
    if ($type=='groupSelect') $params['class'] = 'styleGroupSelect';

    Конкатенация - враг! Учитесь трудолюбию!

    Запостил: ifeya, 02 Марта 2011

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

    • тут не просто конкатенация
      во-первых, каждая первая буква становится заглавной,
      а во-вторых, 'checkbox' исключение.

      Лично я бы переименовал стили, что бы они соответствовали $type
      Ответить
      • ucfirst тоже враг народа? даже если чекбокс исключение, свича мы не знаем?
        Ответить
        • ну зачем такие сложности? проще систему сделать логичнее, чем городить исключения(которые из правил) из каждого чиха
          Ответить
          • правильно, давайте говнокодить
            Ответить
            • то ли вы не поняли, то ли я чего-то не понимаю. Если делать так, как я предложил в первом комментарии, то сабж вообще не нужен. Или это, по-вашему, говнюче?
              Ответить
            • это же PHP
              Ответить
              • это не оправдание. А даже скорее отягчающее обстоятельство ))
                Ответить
      • Лучше массив. Мало ли какие исключения будут.
        Ответить
    • можно просто сделать конструкцию из switch'а и case'ов.
      Ответить
      • можно. и выложить сюда )
        Ответить
      • нужно 1 букву $type перевести в верхний регистр и что получится прилепить к "style". Всегда Ваш К.О.
        Ответить
        • К.О. проморгал вариант чекбокса
          Ответить
          • если классы используются только для стилей, то можно спокойно на это забить, т.к. в стилях регистр до лампочки
            Ответить
            • тогда можно вообще ничего не апперкейсить
              Ответить
              • можно, ведь результат увидит только браузер, а он особых эмоций по этому поводу не испытает.
                поэтому для стилей все можно сократить до
                $params['class'] = $type; // даже без "style".
                Ответить
                • поэтому даже можно везде писать $type, а не $params['class']
                  Ответить
                  • если элементам потом не присваивается еще какой-нибудь класс
                    $params['class'] += ' ' + $some_class;
                    Ответить
        • checkbox тогда не сработает.
          Вообще почему бы массив не завести?
          Ответить

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