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

    +156

    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
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    class StaticArray { // TO DO: add float, char, double
    private $min = 0;
    private $lengch = 0;
    private $max = 0;
    private $array = array();
    function __construct($lengch,$type) {
    if (!is_numeric($lengch) || $type != 'int'&& $type != 'long'&& $type != 'byte'&& $type != 'short'){  
    echo "BAD ARRRAY TYPE OR LENGCH!\n";
    return false;
    }
    $this->lengch = $lengch;
    switch ($type){
    case 'int':
    $this->min = -2147483647;
    $this->max = 2147483648;
    break;
    case 'byte':
    $this->min = -127;
    $this->max = 128;
    break;
    case 'short':
    $this->min = -32768;
    $this->max = 32767;
    break;
    case 'long':
    $this->min = -9223372036854775808;
    $this->max = 9223372036854775807;
    break;
    }
    for ($i=0;$i < $lengch;$i++){
    $this->array[$i] = 0;
    }
    }
     function add ($vaule,$num){
     if ($vaule >= $this->max || $vaule <= $this->min || !is_numeric($num) || $num < 0 || $num >= $this->lengch){
     echo "Not valid vaule!\n";
     return false;
     }
     $this->array[$num] = $vaule;
    }
     
     function ToNormalArray (){
     return $this->array;
     }
     function get ($num){
     if ($num >= $this->lengch || $num < 0){
     echo "BAD ARRAY INDEX\n";
     return false;
     }
     return $this->array[$num];
     }
     function GetLengch(){
     return $this->lengch; 
    }
    }

    Обнаружил в исходниках одного из сайтов который разрабатывал. Предыдущий кодер действительно этим ползовался! Особенно умиляет метод ToNormalArray().

    Запостил: zadrot, 25 Декабря 2013

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

    • > lengch

      Длинча?
      Ответить
      • завграк
        Ответить
      • а vaule - зайчение
        Ответить
        • Ауле создал расу гномов, а его брат Вауле - быдлокодеров.
          Ответить
          • Опять Мелькор извратил детей Илуватара, на этот раз через ПХП
            Ответить
        • ВАуле — это такая азиатская соцсеть.

          Либо что-нибудь на балтийских языках. Если saule = солнце, то и vaule должно что-то означать...
          Ответить
    • и только в пхп конструкторы могут возвращать значение...
      Ответить
      • В javascript разве не умеют?
        Ответить
        • а они там есть?
          Ответить
          • А как там правильно называется функция, уоторую дергают через нью?
            Ответить
            • Ни как специально не называется - функция, да функция. В js ооп сделано (ИЛИ НЕТ?) через в-рот-мне-ноги
              Ответить
              • > Никак специально не называется
                Всё же, (new X).constructor === X даёт true, что наводит на некоторые мысли.

                Да и в ECMA-262 словом "constructor" пользуются
                4.2.1 Objects
                ECMAScript does not use classes such as those in C++, Smalltalk, or Java. Instead objects may be created in various ways including via a literal notation or via constructors which create objects and then execute code that initialises all or part of them by assigning initial values to their properties. Each constructor is a function that has a property named "prototype" that is used to implement prototype-based inheritance and shared properties.


                4.3 Terms and definitions
                For the purposes of this document, the following terms and definitions apply.
                <...>
                4.3.4
                constructor
                function object that creates and initialises objects

                bormand говорит по стандарту :)
                Ответить
        • Они же там не возвращают ничего, только модифицируют this
          Ответить
          • Возвращают либо созданный объект, либо какой-то объект.
            http://ideone.com/K5COSp

            11.2.2 The new Operator; 13.2.2 [[Construct]]
            Ответить
            • Да, можно быть ССЗБ, инициализировать еду сборщика мусора и вернуть что-то другое. Спасибо за замечание.
              Ответить
              • Ну почему, можно приготовить что-то другое, инициализировать это, и вернуть :) А никому не нужный this уйдет сборщику.
                Ответить
                • Синглтоны, вероятно, удобно так делать.
                  Ответить
                  • Виноват, а есть разница между синглтонами и дженериками (в Delphi)? Я очень плохо врубаюсь (
                    Ответить
                    • Синглтон - класс, для которого создаётся 1 (иногда 2 или N=const) экземпляра, дженерики - из обобщённого программирования.
                      Ответить
                    • И тут я охуел
                      Ответить
                      • да ты вообще охуел, товарисч.
                        Ответить
                        • Ну все, я вызываю тебя на поединок. На рассвете. На ножах
                          Ответить
                          • что и требовалось доказать
                            Ответить
                            • Ты идешь, или зассал Уася?
                              Ответить
                              • зассал моего зассала - не мой зассал
                                Ответить
                              • Выражать недовольство/оспаривать/оскорблять действующую власть или ее представителей недопустимо. За это расстрелять могут.
                                Ответить
                                • >>Выражать недовольство/оспаривать/оскорблять действующую власть или ее представителей недопустимо

                                  А как же первая поправка?
                                  Ответить

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