"PHP" / Говнокод #2397 Ссылка на оригинал

0

  1. 1
  2. 2
$require = 'email|name|phone';
foreach (explode('|', $required) as $field)

найдено при рефакторинге

Запостил: Stormherz Stormherz, (Updated )

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

  • $required в начале, синтаксически все верно, случайно дел ткнул
    Ответить
    • ну, к примеру, можно было бы не делать строку, чтобы потом разбить её на массив, а сделать сразу массив
      Ответить
  • Perl like код, я за такое руки рублю, сэкономил на коде, потратил на производительности.
    Ответить
  • -1.
    Порой такие конструкции удобнее, чем писать Array("word") etc, говно код, но НЕОДНОЗНАЧНЫЙ, может быть и полезен.
    Ответить
    • согласен, но дело не в удобстве. во-первых читаемость хуже, во-вторых, как правильно выше сказали, производительность ниже, хоть и песчинка по размеру, но если человек привык так делать, в других местах будет не лучше. Я дальше по коду проглядывал, думал может функционально необходимо было такую строку иметь, так нет, только для этого и была использована =)
      Ответить
  • Я понимаю, что это медленнее работает. Но иногда так делаю и нисколько не переживаю по этому поводу.
    Ответить
  • это нифига не говнокод. Это стиль программирования.
    Да, конечно бывает проще без определения дополнительной переменной, но все-же...
    не говнокод - минусну!
    Ответить
  • В JavaScript я частенько использую такое для сокращения объёма JS-файла (когда, допустим, в JS захардкоден большущий массив, и писать 'elem1|elem2|...|elemN'.split('|') оказывается заметно выгоднее, чем выписывать каждый элемент отдельно). Но JS-то ладно, ну выполнится такой код у юзера на компе за сколько-то миллисекунд, ну и не жалко. Но в PHP-то? Вы действительно хотите, чтобы эта дрянь выполнялась тысячи, миллионы раз на сервере, которому и без того есть чем заняться?
    Ответить
  • Нашли на чём оптимизировать, это вообще стоит нисколько.
    Просто уродская конструкция array('', '', ...) достала человека.
    На перле это вообще будет:
    for my $field (qw(email name phone)) {
    ...
    }
    Так что не говнокод, говноязык.
    Ответить
  • Это не говнокод, согласен, но по правилам для того и создавались массивы чтоб использовать их. А не использовать explode('|'); как сделанно в данном случае!
    Ответить
  • - Да,.. троюродные. - бросил Джим и выразительно посмотрел на проговорившегося Дениса. Тот втянул голову в плечи и засеменил за палатку.
    Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8