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

    +170.2

    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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    // для увеличения быстродействия - если проверка успешна - выходим из цикла, 
    // не проверяя остальные условия.
    do
    {
    	if (is_numeric($variable))
    	{
    		// do smth
    		break;
    	}
    			
    	if (is_null($variable))
    	{
    		// do smth
    		break;
    	}
    	
    	// еще несколько ифоф			
    
    	$variable = '\'ERROR_TYPE\'';
    			
    }
    while(false);

    прикольно конечно) но чел походу не знал про switch-case

    Запостил: litrumb, 13 Апреля 2010

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

    • do {
      // ла-ла
      } while (false); // ОМГ!
      Ответить
      • а чего удивительного? в некоторых случаях удобно кусок кода обернуть в такой цикл(с постусловием), и где нужно - делать брейк. но в данном случае имхо все же лучше свич-кейс
        Ответить
    • показать все, что скрытоСовершенно нормальный код.
      Ответить
    • Сравнение со switch-case не совсем уместно... И порой так писать действительно удобно, особенно когда надо прервать выполнение какой нибудь лапши после первой ошибки.
      Ответить
      • что-то я не пойму,как тут switch поможет?
        Ответить
        • Я говорю, что do {} while(false); удобно использовать, когда нужно прервать выполнение блока кода (в лапше) после какого нибудь условия. В нормально структурированном коде такая конструкция не нужна.
          Ответить
          • Такой изврат только там нужен, где goto выпилили:)
            Ответить
            • Бейсик-быдлокодер детектед!
              Ответить
            • В похапэ сделали уже goto! :))
              Ответить
              • ох, ебать зенд паяльником, зачем они это сделали??
                Ответить
                • goto - обязательный инструмент быдлокодера
                  Ответить
                  • Это - по аналогии с индийским - итальянский код, напоминающий тарелку спагетти.
                    Ответить
        • поможет, но до этого нужно дойти самому!
          Ответить
          • ах да, тут уже внизу привели пример... жаль.
            Ответить
    • Пример этого кода co switch'ем в студию!
      Ответить
    • а чувак всего лишь не знал про elseif\else if.....
      Ответить
    • показать все, что скрытоГде здесь С++?!
      Ответить
      • показать все, что скрыто
        Ответить
      • покажи все, что скрыто!
        Ответить
        • ну ты. сам же написал что затухающая, так бы и строил дальше
          Ответить
          • давай, в том же духе, но затухающую)
            Ответить
            • :D
              Ответить
              • Процесс пошел)
                Ответить
                • Понеслась моча по трубам...
                  Ответить
                  • а чо не так?:)
                    Ответить
                    • Юбилейная двухсотая мессага.
                      Ответить
                      • мдаа, знатно засраны каменты
                        Ответить
                        • Срем все вместе, срем все кучей!
                          Ответить
                          • А легко)
                            Ответить
                            • Парам-пам-пам...
                              Ответить
                              • Поддержка Юникода в некоторых UNIX‐подобных операционных системах, включая основанные на GNU/Linux, реализована в виде кодировки UTF-8.

                                кажется, причем тут юникод?
                                Ответить
                                • Обломись.

                                  Одной из первых компаний, последовательно внедрявших Юникод, была Майкрософт — Windows NT была первой операционной системой, использовавшей Юникод в системных вызовах. Было выбрано двухбайтное представление символов (UCS-2); начиная с Windows 2000, возможно представление символов дополнительных плоскостей с помощью суррогатных пар UTF-16.
                                  Ответить
                              • ебошим влево)
                                Ответить
                              • поебошили
                                Ответить
                            • c++c++c++c++c++c++c++c++c++c++c++c++c++c ++c++c++c++c++
                              Ответить
                          • а кто нибудь знает, откуда пошло "Где здесь C++?!"?
                            Ответить
                          • >а кто нибудь знает, откуда пошло "Где здесь C++?!"?
                            Может это Стрикер написал в окне отправки коммента?
                            Ответить
                        • >а кто нибудь знает, откуда пошло "Где здесь C++?!"?
                          Скорее всего, из-за того, что всякие нубы постили Сишный код в раздел С++, хотя раздел для Си выделен отдельно.
                          Их при этом "не нубы" спрашивали: "Где здесь С++?"
                          Нубы, запостившие этот говнокод, не могли объяснить. Но приходил новый нуб и делал тоже самое.
                          Однажды кому-то из С++ников это надоело и у него завис моск.
                          И так этот вопрос вырвался в другие разделы.
                          Теперь он, как бот, сидит и целыми днями пишет его.
                          Интересно, когда у него закончится еда?
                          Ответить
                      • рак уже здесь
                        Ответить
                    • А не использовать ли нам bbcode?
                      Ответить
                  • >рак уже здесь
                    Да вообще. Пускает метостазы в говнокод. Размножается.
                    Ответить
                • >А не использовать ли нам bbcode?
                  Fail. bbcode нужно было ввиде ссылки оформлять.
                  Ответить
              • ну и как тут в виде ссылки текст оформить? я что, страйкер что ли?
                Ответить
            • не совсем в тему, но
              return (0 == $count) ? false : ($count - 1);
              Ответить
          • Добавьте кто нибудь свежих говен плиз
            Ответить
      • ...
        Ответить
        • поварачиваем сюды:)
          Ответить
          • ебошим лесенку дальше=)
            Ответить
            • Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, поднасрем вместе!
              Ответить
              • Пристраивайтесь.))))
                Ответить
                • Поддержу лесенку)
                  Ответить
                  • Постите скорее bbcode, очень нужно!!!
                    Ответить
                    • на тебе чутка bbcode
                      Ответить
                      • Лишь программисты... не пахнут никак
                        «Лишь программисты не пахнут никак»,-
                        Подумать такое мог только дурак.
                        «С»-кодировщик пахнет структурой,
                        Visual Basic пахнет халтурой.
                        С++ пахнет полиморфизмом,
                        Оракл пахнет бюрократизмом,
                        Митингом нудным разит DBA,
                        Пахнет Main Frame, словно старый еврей.
                        Web-программист пахнет связью случайной,
                        Пахнут COBOL программисты отчаянием.
                        Пахнет PASCALщик чем-то забытым,
                        ACCESS разработчик - корытом разбитым.
                        Вместе все пахнут словно бардак -
                        Тестеры только не пахнут никак!
                        Это неправда! Понюхайте сами,
                        Тестеры вечно пахнут клопами...
                        Только зайдешь к ним и глянешь вокруг -
                        Так копошится какой-нибудь жук.
                        Над программистом, как муха жужжит.
                        - Тут не работает, там не стоит...
                        Даже админ отмахнуться не сможет,
                        Запах жука ему встанет дороже.
                        Не зная ни кода и не системы,
                        Тестеры пахнут общей проблемой !
                        Ответить
    • // для увеличения быстродействия
      Я хочу расцеловать создателя этого комментария
      Ответить
      • ну, может у разработчиков счёт на наносекунды ;-)
        Ответить
      • А я хочу на это посмотреть!
        Впрочем, скорее всего, это не будет олдскульный хакер с бородой и пузом.
        А скорее всего, это будет школьник.
        Ахтунг! Педофил детектед!
        Ответить
        • Идиоты, все знают, что switch медленнее elseif
          Ответить
          • тогда зачем оно введено в пэхапэ?

            в си, откуда всё слямзено, свитч как раз сделан для ускорения...
            Ответить
          • ну и насколько он медленней? думай, прежде чем говорить.
            Ответить
    • А что, в PHP нет вычислений булевых выражений по короткой схеме?
      Ответить
      • а что за "короткая схема"?
        Ответить
        • false && func();
          func никогда не выполнится.
          Ответить
          • В этом случае интереснее такой вариант:
            true || func();

            Хотя, конечно, за счет фразы "// do smth" эта идея не проканает - код может быть разным. Тогда более адекватный вариант http://govnokod.ru/2995#comment20764
            Ответить
        • длина покоя не дает)
          Ответить
      • И как же это в данном случае поможет?)
        Ответить
      • ленивые вычисления, дебил
        Ответить
        • со switch ... case они прекрасно получаются
          Ответить
          • Каким, млять, образом?
            Ответить
            • таким - сами вычисления засунуть в case ... break
              Ответить
              • вот же затупан
                иди хоть погугли что есть ленивые вычисления потом тут вякай
                Ответить
                • офелок, иди сам гугли
                  ленивые вычисления, это когда условие один раз только вычисляется
                  Ответить
                  • ахаха ну ты и хлебнул щас говнеца)))
                    http://en.wikipedia.org/wiki/Lazy_evaluation
                    курить ман до просветления
                    Ответить
                    • Имхо он даже русский ман не раскурит:)

                      На всякий случай, лови, умник
                      http://ru.wikipedia.org/wiki/Ленивые_вычисления
                      Ответить
                      • вот еще один еблан появился
                        вы сами то свои ссылки смотрели? ну и где там про php написано, а?
                        Ответить
                        • ты действительно настолько туп?
                          какбе тебе задан вопрос был какие в switch ленивые вычисления?
                          Ответить
                          • я ж тебе и говорю, ставим в каждый case ... break по выражению, таким образом выражение будет вычислено только там, где в данный момент необходимо, а другие(в других case) - нет.
                            Ответить
                            • фееричный высер
                              во-первых switch() это сахар для if()elseif()...elseif() (=> будут вычислены все предыдущие условия)
                              во-вторых ты так и не усвоил что такое ленивые вычисления
                              Ответить
                              • блядь, ты еблан?! пишем так:
                                case '1':{ тут выражение
                                }
                                break;

                                в итоге будет вычисляться только то, что в данный момент нужно. дошло?
                                Ответить
                                • Тупень, ты опять путаешь жопу с пальцем, даже выражение от оператора не отличаешь.
                                  Ответить
                                  • бля. case - оператор, $a == 'b' - выражение. что не так?
                                    Ответить
                                    • вот сказали же что ты дурак но все равно продолжаешь это подтверждать
                                      к твоему убогому сведению:
                                      оператор это switch, if, etc а case это keyword вне свитча никакой семантической нагрузи не несущий, но тебе это разумеется ни о чем не говорит
                                      Ответить
                                      • когда нечего сказать - доебыватся к мелочам. ну какая разница, case оператор или нет? я же про логику говорю, как в switch сделть ленивые вычисления. если так нельзя сделать, так объясни почему
                                        Ответить
                                        • само определение ленивых вычислений уже содержит ответ почему в неленивых языках невозможно(затрудненно) их использование:

                                          "...концепция в некоторых языках программирования, согласно которой вычисления следует откладывать до тех пор, пока не понадобится их результат."

                                          следовательно если ты зашел в ветку свитча то и результат вычислений этой ветки получишь сразу, а не где-то дальше по коду
                                          Ответить
                                          • да! ну так ведь раз зашел в ветку, значит результат нужен. а остальные вычисления, которые в данный момент не нужны, в других ветках - они то не выполнятся(пока не потребуются)
                                            Ответить
                                            • ему про фому он про ерему..
                                              при чем тут другие ветки?
                                              в if (0) {...} никогда не будут производится вычисления, но от этого они не становятся ленивыми.
                                              а если взять, к примеру, хаскелл то length [factorial (-1), ....] вернет длину списка, потому что сами элементы не вычисляются.

                                              Неужели так сложно понять эту разницу?
                                              Ответить
                                              • Он дебилоид, разве не видно?:) Фиг вы ему докажите что-нибудь:)
                                                Ответить
                                                • хотя бы попытаюсь)
                                                  вот ссылочка на список литературы по функ.языкам (особенно рекомендую SICP)
                                                  http://fprog.ru/2009/issue1/alex-ott-literature-overview/

                                                  журнал Практика ФП http://fprog.ru/
                                                  (насколько я помню в первом выпуске как раз про ленивые вычисления была статья)
                                                  Ответить
                                      • что за "etc"?
                                        Ответить
                                        • Et cetĕra (абб. — etc.) — латинское выражение, означающее «и другие», «и тому подобное», «и так далее». K.O.
                                          Ответить
                                          • не, контекст:

                                            >оператор это switch, if, etc а
                                            >case это keyword вне свитча
                                            >никакой семантической
                                            >нагрузи не несущий, но тебе
                                            >это разумеется ни о чем не
                                            >говорит

                                            etc наверное новая команда в пхп6?
                                            Ответить
      • Есть
        Ответить
    • Зато чувак ограничивает строки 80-ю символами:)
      Ответить
    • Не могу понять, почему автор так настаивает на switch ... case? Банальный if ... elseif ... else нынче не красиво применять?
      Ответить
    • в пыхе case это такая обёртка для elseif, так что с он медленнее работает
      Ответить
    • Я даже что-то новое узнал.
      Ответить
    • Нормальный код абсолютно.
      Чувак просто сишник, видимо :)
      Ответить
      • Чувак - С++сник.
        Ответить
        • Ага, а это С++!
          Ответить
        • Вполне неплохой плюсовик должен быть значит.
          Ответить
          • с чего это вдруг?
            Ответить
            • Почему бы и нет?
              Ответить
              • по while(false) опеределил?)
                Ответить
                • Я ничего не определил, я предполагаю :)
                  Ну просто конструкция не очень распространенная среди быдлокодеров - такая типа эмуляция эксепшнов для pure C.
                  Ответить
                  • чел просто говнокодер, а высер случайно совпал с сишным трюком.
                    Ответить
                    • О, я сейчас комментарий сверху прочитал.
                      Все встало на свои места :)))
                      Ответить
    • Вся фишка свитча в том, чтобы уменьшить кол-во проверок, если в пхп сделать в case проверку, то кол-во проверок не уменьшится, есть тупо else if, который здесь лучше всего подойдет.
      Ответить
      • А elseif не будет заново пересчитывать все предыдущие условия?
        Ответить
    • А typeof() тут бы не помог разве?
      Ответить
      • А потом снова elseif`ами тоже самое городить?
        Ответить
        • switch(gettype($var))
          {
           'integer':
            ...
           break;
           'string':
           ...
           break;
           ...
          }

          Видимо, это имелось в виду.
          Ответить
          • там действия над переменной проводились в зависимости от содержимого(число, строка, объект), а не от типа(тип может быть строковый, а внутри например число).
            Ответить
            • что тут скажешь - мегауебанское проектирование
              Ответить
            • Ну тогда это не совсем говнокод, хотя elseif тут был бы более к месту. Хотя, если объект... Как минимум три типа тогда получается - NULL, строка и объект (а ещё и таки числовые могут быть). Строку просто дополнительно обработать пришлось бы (is_numeric() или таки нет), но gettype() со switch-ом дают хотя бы предварительное раскидывание по типам стандартными средствами...
              Ответить
              • а смысл? тгда говнокод еще пуще выйдет, гляди:
                if(is_string)
                {
                 if(is_numeric)
                 {
                  //действия с числом
                 }
                }
                elseif(is_integer)
                {
                 //опять теже действия с числом
                }
                Ответить
                • Ни фига.
                  switch(gettype($var))
                  {
                   case 'null':
                    ...
                   break;
                   case 'string':
                    if(is_numeric($var))
                    ... //число в строке
                    else
                    ... // ну таки не число
                   break;
                   case 'object':
                    ...
                   break;
                  }
                  Ответить
                  • еще один тупень? а на
                    integer
                    например ты где проверяешь? число ведь может быть и не в строковом представлении
                    Ответить
                    • если прогер сам не знает что у него в переменной то это какбе говорит о говноархитектуре приложения
                      Ответить
                      • А если подобный код - формирователь sql запросов?
                        Там никто не может сказать заранее, какого типа будет переменная, и то же число может представляться во всех возможных формах.
                        Ответить
                      • Особенно это относится к сериализации данных и прочим полезным абстракциям. ;) Да, и шаблоны в C++ - тоже говнокод! ;)
                        Ответить
                        • >Особенно это относится к сериализации данных
                          насколько я помню пых сохраняет данные о типе при сериализации

                          >прочим полезным абстракциям
                          да какие могут быть абстракции в этом недоязыке

                          >шаблоны в C++ - тоже говнокод!
                          есессно) 1000%-ое говно
                          Ответить
                          • >шаблоны в C++ - тоже говнокод!
                            Бебебебебе. Я пидорас. С++ крут.
                            Ответить
                    • Мне в примере надо было ещё десяток case-ов описать? ;)
                      Это пример. Образец кода. Общий вид.
                      А отработку одинаковых по смыслу веток следовало бы засунуть в функцию.
                      Ответить
                      • вместо gettype() пхпшные мануалы рекомендуют юзать is_numeric и тп
                        Ответить
                        • Библия говорит, что евреи лучше людей. Им тоже верить?
                          Конкретно же там сказано:
                          Never use gettype() to test for a certain type, since the returned string may be subject to change in a future version. In addition, it is slow too, as it involves string comparison.
                          И с этим я не могу не согласиться. Но до чего ж красиво код выглядит... ;)
                          Ответить
                          • в большинстве случаев код пишется для юзеров, а не для дрочки на него парочки прогеров
                            Ответить
                            • В принципе верно. Но написание кода исключительно из соображений быстродействия, без комментариев, форматирования и общей красоты и понятности - залог смерти проекта, если создатель потеряет к нему интерес. Грубо говоря, никому не захочется ковыряться в говнокоде - проще будет написать с нуля.
                              Ответить
                              • В крайности впадать не следует, вот и все
                                Ответить
                  • Вообще то is_numeric() возвращает true даже если число в строковом представление.
                    if(isset($_GET['str'])){
                    $fuck = (is_numeric($_GET['str']))?"Сдохни сука":"ладно я сдохну";
                    echo $fuck;
                    }

                    Как известно, данные в $_GET,$_POST всегда в строковом представление..
                    Ответить
                    • Именно! Поэтому, если нужно определить содержимое, то юзать is_numeric() и тп, а если важен тип, то gettype().
                      Ответить
    • С++ тормозит, что-бы вы знали. Вообще самый медленный язык.
      Ответить
      • А PHP то ведь на С++ написан!
        Ответить
        • то-то я думаю, что он такой тормознутый... а все просто!:)
          Ответить
    • "чел походу не знал про switch-case"

      мусьё, просветите нас как вы сделаете switch-case где кейсы у вас есть не константы, а результаты вызовов разных функций???
      Ответить
      • и в чем проблема?
        switch ($condition)
        {
          case foo(): .. break;
          case bar(): ...break;
          default: ...
        }
        Ответить
        • сорри... мои мозги застопорились в С режиме.

          да, на PHP оно даже так можно.
          Ответить
          • я думаю, это какой то заговор, постить везде сиплюплюсные посты. мозги уже даже пхп в си-режиме обрабатывают. я думаю что в матрице меняют компилятор, отсюда и с++ вокруг
            Ответить
      • Выше код уже приведен, причем в разных вариациях
        Ответить
    • Во нафлудили то:)
      Ответить
    • C++ ники козлы.
      Ответить
      • Да! Это ж надо было так насрать!
        Ответить
      • +++++
        ++C++
        +++++
        Ответить
        • С++ников зарешётку?
          Ответить
          • тогда так)
            #####
            #C++#
            #####
            Ответить
            • Всё дрочишь?
              Ответить
              • да. ты против?
                Ответить
                • Пиздец, просто... Такого ответа даже не ожидал... Отойди от меня, грязный извращенец.
                  Ответить
                  • я же не прошу тебя поучаствовать. чего ты нервничаешь? или сам втихоря поддрачиваешь на коменты, а?
                    Ответить
                    • Чёрд. Ты меня раскусил.
                      Ответить
                      • пиздец.
                        Ответить
                        • Ну и народ сидит на говнокоде:)))
                          Ответить
                          • Это всё ГдеЗдесьСиПлюсПлюсеры.
                            Они, знаешь ли, такие.
                            Ответить
                            • А чего им дрочить на говнокод? Дрочили бы на компилятор тихонько
                              Ответить
                              • Да. Я тоже этого не понимаю. Но оно есть, как есть.
                                Ответить
                                • дрочить в компании веселей.
                                  Ответить
                                  • Какие откровения...
                                    Ответить
                                  • ГруппаВУхо рулит. :)))))
                                    Ответить
                                    • Люблю дрочить я на рассвете.
                                      Дома тихо в туалете.
                                      Ответить
                                      • Дрочеры отаке
                                        Ответить
                                        • С++, давай детка!!!!111
                                          Ответить
                                          • и тут минусуют...
                                            Ответить
                                            • Ну и тред...
                                              Ответить
                                              • С++ отаке
                                                Ответить
                                                • Дрочка, дрочка!!!
                                                  дрочим вместе!
                                                  Ответить
                                                  • тредик тот еще
                                                    Ответить
                                                    • Чего стесняетесь?
                                                      По статистеке, только 17 % людей на плянете, не признаются, что дрочать. Остальные просто дрочат.
                                                      Просто говорите правду.
                                                      Не нужно врать себе и другим.
                                                      Ответить
                                                      • а сам то ты дрочишь?
                                                        Ответить
                                                        • Каждый день, а после хожу в церковь, замаливать свои грехи.
                                                          Ответить
                                                          • фу, дрочер.
                                                            Ответить
                                                            • фу, обманьщик.
                                                              Боишься признать, что ты тоже это делаешь?
                                                              Тебе должно быть стыдно.
                                                              Я, хотя бы, тебя не обманывал.
                                                              Ответить
    • Пидары, на говнокоде пидары!
      Ответить
    • Изпидарасили весь топик.
      Ответить
    • Да что-такое с говнокодом стало... :'(
      Ответить
    • ох, пидары-пидары...
      Ответить
    • Пидоры, пидоры...
      Пидоры, my пидоры...
      Ответить
    • Мозгов у вас нет. Зато есть хуй. Тем у кого есть хуй - мозг не нужен, только вечно вы будете делать это со своей рукой.
      Только те, у кого есть мозг - это делают не срукой.
      Ответить
    • Бля, одни ахтунги вокруг(((
      Ухожу с говнокода.
      Ответить
    • Все вы бляди и суки!!!1111
      Ответить
    • да вы охренели!
      Ответить
    • Говнокодеры пидорасяца.
      Ответить
      • Ну не все...
        Но некоторые говнокодеры пишут говно, потому что пидорасы.
        Уговоры тут не помогут. Просто у некоторых такая проффориентация.
        Ответить
      • Пидарасы петросянятся.
        Ответить
    • Это всё С++ники завидуют нашему PHP, поэтому заходят в наш топик и падарасяца.
      Ответить
    • отсосите у меня
      Ответить
    • Трансцендентально-ебическая рекурсия.
      Ответить
    • Ебать-колотить
      Ответить
    • Итить-Колотить.
      Ответить
    • Аааааа... Сколько С++ пидорасов...

      Один мой знакомый С++ник... Нет ну вы не подумайте, у меня с ним чисто профессиональные отношения.

      Так вот этот С++совец-мужичёк периодически переодевался в девушку, снимал за деньги 7ми летних мальчиков, практикуя различные сексуальные извращения.
      Ответить

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