Встраивание php в html код (шаблоны)

Отделение логики получения данных от логики их отображения — важная составляющая веб-разработки. Для этих целей PHP предлагает короткие тэги и альтернативный синтаксис некоторых его управляющих структур, а именно: if, while, for, foreach и switch. Основной формой альтернативного синтаксиса является изменение открывающей фигурной скобки на двоеточие (:), а закрывающей скобки на endif;, endwhile;, endfor;, endforeach; или endswitch;.

<?php
  $DATA = $DBH->query("SELECT * FROM links")->fetchAll(PDO::FETCH_ASSOC);
?>


<h2><?=$pagetitle?></h2>
<ul>
<? foreach($DATA as $row): ?>
    <li><a href="<?=$row['link']?>" target="_blank"><?=$row['name']?></a></li>
<? endforeach ?>
</ul>

<?=$pagetitle?> равносильно <?php echo $pagetitle ?>. Можно выводить сразу два значения:

<?=$pagetitle=$main?>

или использовать тернарный оператор (вместо условия if):

<?=$flag ? "Включено" : "Выключено"?>

Альтернативный синтаксис условия:

<? if ($a == 5): ?>
A равно 5
<? else: ?>
A не равно 5
<? endif; ?>

Альтернативный синтаксис switch:

<? switch ($row[14]):
   case 16:?>
<p>Число равно 16</p>
<? break;
   case 20:?>
<p>Число равно 20</p>
<? break;
   default:?>
<h2>Число ни чему не равно</h2>
<? endswitch ?>

Примечание: чтобы использовать короткую форму <? вместо <?php необходимо в файле php.ini установить параметр short_open_tag в On:

short_open_tag = On

Тег <?= доступен всегда, вне зависимости от настройки short_open_tag.