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

    +166

    1. 1
    $need	= explode(',', 'name,phone');

    Оригинальный способ создания массивов

    Запостил: netrain, 07 Сентября 2010

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

    • $need=json_decode('["name","phone"]');
      --------------------------------------------------------
      $need=eval('return Array(name,phone);');
      --------------------------------------------------------
      file_put_contents('./temp',"name\nphone");$need=file('./temp');unlink('./temp');

      Можно и более уродливые решения придумать.
      Ответить
    • Ни фига не оригинальный. Страсть к подобным извратам замечена у перебирающихся на PHP JavaScript'ников, привыкших использовать такую весчь кагбе для сжатия/минификации кода.
      Ответить
      • здесь ключевое слово "кагбе". чем хуже яваскриптер скриптует, тем больше бредит защитой\сжатием\"оптимизацией" своих поделок
        Ответить
        • Ну уж как смотреть. Чем хуже яваскриптер скриптует, тем больше он любит eval(), например. Ну или тем меньше понимает, что jQuery - это отдельная библиотека, а не язык. Меж тем минификация JS - задача вполне с конкретными целями, хотя, конечно, совсем другое дело, если кодер начинает лепить её из головы своими силами прямо в скрипте, превращая его в нечитаемое говно.
          Ответить
          • именно так. хотя хорошо написанный код - это уже почти целиком оптимизация и неплохая минификация
            Ответить
      • В JS нет аналога array из PHP? о_О
        Ответить
        • Всё там есть.
          var a = new Array(1, 2, 3);

          Или литералом:
          var a = [1, 2, 3];

          Это для неассоциативных массивов. В качестве ассоциативных применяются объекты. Примерами захламлять не буду, если и правда понадобится - сами без проблем найдёте.
          Ответить
    • может это нелепая попытка сделать красиво, например в руби можно так
      array = ['tro' , 'lo' , 'lo' , 'olo' ,'lo']
      array = %w(tro lo lo olo lo)
      Ответить
      • мля, так скоро и на заборах вместо "хуй" будут писать "школата"(причем через а) и "трололо" )))
        Ответить
      • скорей всего так и есть. пхп такой пхп.
        @array = qw(shit1 shit2 crap1 crap2);  # perl-style
        Ответить
    • Сдандартный perl-style.
      Ответить
    • Вообще говоря когда надо в программу большое количество данных вводить (строки, либо числа), то проще делать это так, чтоб было проще набивать, к примеру если нужно захардкодить большой список чисел, то я бы это сделал так:

      map(int, '76 6767867 878 878 878 8 8 8 878 87 8 87 87 8 8 9898 78 878 89 89 67'.split())

      Так как при наборе перечислить через пробел быстрее (чем через запятую, а в случае строк нужны были бы ещё и кавычки). А на производительность в данном случае плевать, так как список будет парситься всего один раз при старте программы.

      Хотя если программа не одноразовая, а потом её ещё придётся поддерживать, то можно забить числа или строки через пробел, а потом каким-нить скриптом сделать сплит по пробелу, и отформатировать в соответствии с синтаксисом инициализации массивов языка.

      типа

      print ', '.join(map(lambda x: '"%s"' % x, 'some long list of strings'.split()))
      Ответить

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