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

    +165

    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
    public function checkStr($s2){
        $s1=" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_1234567890";
    
        $result;
        $j=strlen($s2);
        for($i=0;$i<$j;$i++){
        if ((strpos($s1,$s2[$i])))
        $result.=$s2[$i];
        else return false;
        return true;
    }
    
        }

    оригинальный кодинг стайл сохранен!
    вот такое чудо я нашел в тестовом задании, которое прислал соискатель на должность пхп-программиста.
    собственно, там можно постить все тестовое задание, просто это было первым, что бросилось в глаза.

    Запостил: paulkey, 05 Августа 2011

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

    • >$result;
      >$result.=$s2[$i];
      Хоть бы строкой объявил, блин. =/

      >$j=strlen($s2);
      Ну хоть за это спасибо. =)

      Хотя все равно руки оторвать.
      Ответить
    • нас (мы всем отделом гадали над смыслом) больше всего порадовало, что в любом случае после первой же итерации цикл закончится... :)
      Ответить
    • Круче всего, что, собственно, проверится только первая буква.. потом будет выход по return :)
      Ответить
    • >public function
      И сразу как-то Visual Basic 6.0 вспомнился.
      Ответить
    • if ((((((((((strpos()))))))))))
      Ответить
    • if(strpos($s1,$s2[$i])) {}

      аж глаза режет... ну где "!== false"?
      Ответить
      • где-то в коментах я вычитывал уже, что в книге какого-то <сарказм>очень умного</сарказм> автора было написано, цитирую: "... т.к. в PHP оператора !=== не существует". может и этот пассажир читал эту книгу, тогда все становится понятным
        Ответить
        • так он прав !=== не существует есть только !==
          Ответить
          • спасибо, капитан! только там писалось, что из-за отсутствия такого оператора надо делать так: "if (!($a === $b)) {..."
            Ответить
      • кстати, только вспомнил, мы же отделом почти весь смысл раскурили таки. там в исходной строке проверочных символов первым идет пробел (он, вероятно, НЕ входит в список допустимых). таким образом что-либо меньше нуля тут не вернется или же будет невалидным (если это будет пробел).
        догадка такая, правда, появилась не сразу :)
        Ответить
    • Я молча хлебал щи. Они были вкусные, тетка такие не готовила, и я наворачивал по полной.
      Ответить

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