Встроить условие в echo

Рейтинг: 0Ответов: 2Опубликовано: 18.09.2014

Всем привет. Подскажите, как мне в вывод echo встроить условие?

echo "<div>
    ...
</div>
";

А условие такое:

<? if(!empty($myrow['year'])): ?>
<span>-</span>
<span>". $myrow['year'] ."</span>
<span>-</span>
<? endif; ?>

Ответы

▲ 1Принят

Вариант первый:

<div>
...
<?php
   if(!empty($myrow['year'])){?>
   <span>-</span>
   <span><?=$myrow['year'];?></span>
   <span>-</span>
   <?}
?>
</div>

Вариант второй:

<? echo "<div>";
if(!empty($myrow['year'])): ?>
<span>-</span>
<span>".$myrow['year']."</span>
<span>-</span>
<? endif;
echo "</div>";
?>

Предпочтительнее не использовать echo, так как с ним получается неразбериха в коде. Желательно просто делать вставки php в html-код.

▲ 1

Рекомендую функции sprintf() и printf() — они «впечатывают» в темплейт значения. Например, на место "%s" встанет значение аргумента как строка. sprintf() возвращает результат как строку, printf() выводит её, примерно как echo.

Что хорошо — отделяется логика от представления.

if( empty( $myrow[ 'year'])) {
  $div = "";
} else {
  $div = sprintf(
    "<span>-</span><span>%s</span><span>-</span>",
    $myrow['year']
  );
}
printf( "<div>%s</div>", $div);