@DenisBudeyko

Как сделать рефакторинг данного кода php?

Добрый день, подскажите как лучше было бы оформить данный код( если не затруднит с комментариями, почему так)
Система 5 звезд. Администратор из админ панели выбирает количество звезд от 1 до 5
$rate // Код получение из базы данных string 1-5
            $rate = (int) $rate; // конвертирую в integer
            $difference = 5 - $rate; // остаток, так как по нему надо выводить другой svg( серые звезды)


Вывод

<?php for($i = 0; $i < $rate; $i++):  ?>
                    <svg class="star-svg" width="10px" height="9px">
                      <use xlink:href="#star"></use>
                    </svg>
                  <?php endfor; ?>

                  <?php for($n = 0; $n < $difference; $n++):  ?>
                    <svg class="star-svg" width="11px" height="9px">
                        <use xlink:href="#star-none"></use>
                    </svg>
                  <?php endfor; ?>


Уверен что тут можно было обойтись одним циклом, но как...
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ответы на вопрос 2
kimono
@kimono
Web developer
for($i = 0; $i < 5; $i++) {
    if ($i < $rate) {
    } else {
    }
}
Ответ написан
@housequake
<?php for ($n = 1; $n <= MAX_RATE; $n++):  ?>
    <svg class="star-svg" width="11px" height="9px">
          <use xlink:href="#star<?= $rate <= $n  ? '' : '-none' ?>"></use>
    </svg>
<?php endfor; ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы