1. Куча / Говнокод #12548

    +130

    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
    switch(true){
        case isCondFirst():
            value = valueFirst();
            break;
        case isCondSecond():
            value = valueSecond();
            break;
        case isCondThird():
            value = valueThird();
            break;
        default:
            value = valueDefault()
    }

    Занятный баян с хабра. Предложено как замена вложенным тернарным операторам в связи с неочевидным порядком их исполнения в пхп.

    value = isCondFirst() ? valueFirst() : (isCondSecond() ? valueSecond() : (isCondThird() ? valueThird() : (valueDefault())));

    Запостил: Vindicar, 07 Февраля 2013

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

    • да это прям паттерн матчинг
      Ответить
    • Способ нетрадиционный кончено, но в чем говно ?
      Ответить
    • Просто авторы пыха долбоёбы и обосрались с тернарниками жидким говном, вынудив полчища пыхомакак поскальзываться на этом жидком говне и падать в него мордой.
      Ответить
    • в извращениях новых пыхов не разбираюсь, но кажись для С как-то раз видел вот такое форматирование:
      value = isCondFirst()?
      		valueFirst():
      	isCondSecond()?
      		valueSecond():
      	isCondThird()?
      		valueThird():
      		valueDefault();
      Ответить
      • Ну в пыхе это работать будет не так, как вы думаете. Там тернарник ёбнутый, и работает совсем не так, как в других сиподобных. Если не изменяет память - пых распасит это так:
        value = ((isCondFirst()?
        		valueFirst():
        	isCondSecond())?
        		valueSecond():
        	isCondThird())?
        		valueThird():
        		valueDefault();
        Ответить
        • да. и на самом деле ебнутый. надо запомнить на случай если кто-то опять будет на перловые приоритеты операторов будет жаловатся. :)
          Ответить

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