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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    <?php
    
    if(true) {
    ...
    }
    else $blacklist_numbers_error="неверный тип файла";
    
    ?>

    разбираю на работе код ><

    Запостил: DmitryDick, 22 Июля 2010

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

    • заглушка
      Ответить
      • а умные компилеры и иде скажут unreachable code.
        Ответить
        • в пхп разве есть компилер?(
          Ответить
        • > умные компилеры
          дык умные, не пхп
          > в пхп разве есть компилер?(
          а по моему там интерпретатор. Все таки транслятор не значит компилятор
          Ответить
          • >>>дык умные, не пхп
            отож
            Ответить
            • умные, к примеру, если файл не удалось открыть на чтение, прерывают нормальный ход исполнения, а пхп всего лишь кидает ворнинг (причем в браузер, если не настроено иначе) и радостно исполняет код, где производится чтение, причем, мало того, раз файл не окрыт и дескриптор файла не получен, то и читать нечего, функция fgetc (как правило юзают именно эту) возвращает false, опять кидает ворнинг, и продолжает скрипт как ни в чем ни бывало и в зависимости от говенности скрипта мы можем повесить систему тыщами этих ворнингов...а в итоге говноскрипт, скажем,посимвольного копирования при отсутствии файла таки произведет новый файл с записью false.
              Это градус дебильности пхп, просто акуеть.

              кстати, братцы, напомните, если аналогичный код написать на с, мы че поломаем?
              Ответить
              • >>>причем в браузер, если не настроено иначе
                я не в теме, а че для пхп нет ниче вроде log4?
                Ответить
                • http://php.net/manual/en/function.set-error-handler.php
                  Ответить
                  • дак это использование стандартных средств
                    и доработка напильником - function myErrorHandler - чего тебе надо
                    а я о нормальном логгере с встроенными аппендерами, уровнями логирования и пр.
                    а тут все надо руками...

                    хотя с другой стороны хороший пример, того на пхп можно писать годный код, и если руки не из жопы можно написать нормальный хендлер а не пугать юзеров ворнингами вверху страницы или не затыкать их.
                    Ответить
                • мля, ну я ж для примера говорю, какой логгер у того, у кого скрипты ворнингами кидаются?
                  я вообще про дизайн пхп
                  Ответить
              • огого!
                посимвольное копирование на ПХП?!
                хочу продакшн экзампл, или хотя бы описание того, где это может использоваться.
                Ответить
                • я сказал для примера.
                  доказывать я ничего не буду, но во времена пхп4 таких сниппетов было полно
                  Ответить
                  • вы, уважаемый, сказали для примера, так и приведите пример для того, что вы сказали. ничего сверх.
                    Ответить
            • вот честно, лучше бы разрабы пхп вместо всех этих нотисов сразу кидали fatal error, убивая скрипт
              Ответить
        • интерпретатор php разбирает код по ходу
          Ответить
    • Есть мнение http://cssing.org.ua/2010/04/15/rit-2010/
      что язык так и должен себя вести - не заваливаться в фатальную ошибку, а выдавать ворнинг.
      Ответить
      • окей, не фатальную. но хотя бы что-то в виде исключения, которое можно программно обработать. Скрипт НЕ должен делать вид, что ничего не произошло, если что-то произошло и втихую вести хронику проблем.
        жестче надо с программерами - глядишь, и людьми станут
        Ответить
      • кстати линк доставляет - смотрите наш браузер на специально созданном нами тесте и полюбому заточенный по этот тест рвет/наравне со всеми остальными )))
        Ответить

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