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

    +155

    1. 1
    2. 2
    foreach ($period_range as $k=>$v) 
    	{?><option value="<?=$k?>"<?=($k==$period)?' selected':''?>><?=$v?></option><?}

    Накодил как-то...

    Запостил: zima, 11 Января 2012

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

    • Ничего необычного, обычная мешанина на php. Юзай тимлейтеры чтоли...
      Ответить
      • ну это в полне может быть кусоком представления. Хотя можно и какой нибуть класс написать для построения хтмл типа html::select($k,$htmlOptions); Но я не вижу приимуществ.
        Ответить
    • вполне нормальный код.
      Ответить
    • показать все, что скрытокакой в жопу нормальный код, сегодня что день троля что ли ?
      Ответить
      • ну так предложите свой более нормальный аналог
        Ответить
        • foreach ($period_range as $k=>$v)
          { echo '<option value="'.$k.'"'.($k==$period ? ' selected' : '').'>'.$v.'</option>'; }
          Не ? Ну или ...
          foreach ($period_range as $k=>$v)
          {
          if($k==$period)
          $selected = ' selected';
          else
          $selected = '';
          echo '<option value="'.$k.'"'.$selected.'>'.$v.'</option>';
          }
          Ответить
          • в сабже вариант лучше хотябы потому что быстрее и читабельней.
            Ответить
          • о мля.... вместо того, что разместил автор, стоило бы поместить ваш вариант. потому что он ужасен. во-первых потому что слишком большой, во-вторых потому что вы html-теги выводите с помощью echo, что нагружает интерпретатор и весьма не читабельно. может быть для такого маленько куска кода это и не так страшно, но вот когда будет более-менее объемная форма и куча другого кода, будет тихий ужас.
            так что, видимо тролль здесь вы
            Ответить
          • это называеться - поменять шило на мыло. Другими словами одно говно на другое
            Ответить
    • $out = '';
      foreach ($period_range as $k=>$v) 
      	$out .= "<option value=$k" . (($k==$period)?' selected':'') . ">$v</option>";
      echo $out;


      При условии, что $k является числом, один из лучших вариантов, т.к. нет блока кода и вызов меньшего числа операторов.
      Ответить
    • Объявляется конкурс на лучшее исполнение конструкции тега "select" в php...
      Ответить
      • А это идея. Я предложил свой вариант.
        Ответить
        • Самый первый способ самый лучший из предложенных, можно добавить немного косметики, например заменить foreach чтобы не работать не с копией массива, ну и убрать пассивную конструкцию сравнения if?:
          <?
          while (list ($k, $v) = each($period_range)) {
          ?><option value="<?=$k ?>"<?

          if($k == $period) {
          ?> selected="selected"<?
          }

          ?>><?=$v ?></option><?
          }
          ?>
          Тут: $out .= "<option value=$k" . (($k==$period)?' selected':'') . ">$v</option>";
          нагружаете пхп для того чтобы разобрать строку и выделить переменные + 1 переменная out + пассивная конструкция if без then
          Ответить

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