PHP предлагает альтернативный синтаксис для некоторых его управляющих структур, а именно: code>if, while
, for
, foreach
и switch
. В каждом случае основной формой альтернативного синтаксиса является изменение открывающей фигурной скобки на двоеточие (:), а закрывающей скобки на endif;
, endwhile;
, endfor;
, endforeach;
или endswitch;
соответственно.
Синтаксис
if...else / if...ifelse...else
Чаще всего нужно делать не вставки HTML
внутрь скрипта, а вставки кода внутрь HTML
. Это гораздо проще для дизайнера, который, возможно, в будущем захочет переоформить сценарий, но не сможет разобраться, что ему изменять, а что не трогать. Поэтому целесообразно бывает отделять HTML-код от программы (скрипта), например, поместить его в отдельный файл, который затем подключается к скрипту при помощи конструкции include
.
<header>
<h1>UserZamt</h1>
<?php if( strcasecmp($usr, "admin") == 0): ?>
<div id="avatar">
<img src="../img/admin.png">
<p>admin<p>
</div>
<?php elseif( strcasecmp($usr, "root") == 0 ): ?>
<div id="avatar">
<img src="../img/root.png">
<p>root<p>
</div>
<?php else: ?>
<form>
<fieldset>
<legend>Регистрация</legend>
<label for="usr"></label>
<input id="usr" name="usr" type="text" value="" placeholder="UserName"><br>
<label for="passwd"></label>
<input id="passwd" name="passwd" type="password" value="" placeholder="Your Password"><br>
<input type="submit" value="Передать">
</fieldset>
</form>
<?php endif; ?gt;
</header>
while / do...while
<table>
<?php while($num < 3):?>
<tr><td><?=$num++?></td><td><?=time(); sleep(1);?></td></tr>
<?php endwhile; ?>
</table>
for
<?php
$article = array(
array("Проснувшись", "Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил, что он у себя в постели превратился в страшное насекомое. Лежа на панцирнотвердой спине, он видел, стоило ему приподнять голову, свой коричневый, выпуклый, разделенный дугообразными чешуйками живот, на верхушке которого еле держалось готовое вот-вот окончательно сползти одеяло."),
array("Душа моя", "Душа моя озарена неземной радостью, как эти чудесные весенние утра, которыми я наслаждаюсь от всего сердца. Я совсем один и блаженствую в здешнем краю, словно созданном для таких, как я."),
array("Далеко-далеко", "Далеко-далеко за словесными горами в стране гласных и согласных живут рыбные тексты. Вдали от всех живут они в буквенных домах на берегу Семантика большого языкового океана."),
);
for($i=0, $size = count($article); $i < $size; ++$i):
?>
<article>
<h2><?=$article[$i][0]?></h2>
<p><?=$article[$i][1]?></p>
</article>
<?php endfor; ?>
switch
Любой вывод (включая пробельные символы) между выражением switch
и первым case
приведут к синтаксической ошибке.
<?php switch($usr): ?>
<?php case "root": ?>
<style>body{background-color: rgba(0,153,229,0.5);}</style>
<?php break; ?>
<?php case "admin": ?>
<style>body{background-color: rgba(255,76,76,0.5);}</style>
<?php break; ?>
<?php endswitch; ?>
foreach
<nav>
<ul>
<?php
$nav = array(
"Home" => "/",
"Download" => "download.html",
"FAQ" => "faq.html",
"About" => "about.html",
);
?>
........
<?php foreach($nav as $a => $path): ?>
<li><a href="<?=$path?>"><?=$a?></a></li>
<?php endforeach; ?>
</ul>
</nav>