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

Wab IT

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

В PHP есть альтернативный синтаксис для записи условий и циклов: if, while, for, foreach и switch. 

Отличие альтернативного синтаксиса от обычного написания когда, в возможности вставлять обычный HTML текст, как в heredoc-синтаксисе.
Применяется когда необходимо вставлять большой кусок текста или таблицы. Записывается такой синтаксис без фигурных скобок, а вместо них ставим двоеточие: закрываем PHP тег и в конце условия, в PHP тегах записываем end и выход из endif; endwhile; endfor; endforeach;   endswitch; Для работы альтернативного синтаксиса, нужно указывать тег  <?php , а не <?. Создадим переменную $name и запишем условие. Пример

<?php  $name = 'Админ'; ?>
<?php if ($name == 'Админ') : ?>
если в переменную нейм попадет админ то выводим <p>
 
Доступ разрешен.
<?php elseif ($name == "Пользователь") : ?>
Здравствуйте <?= $name ?>, для доступа авторизуйтесь под админ.<br><p> Мы вставили переменную PHP, как в обычный HTML текст 
<?php else : ?>
И закрыли условие командой end if;
<?php endif; ?> // вышли из условия

Да переменную нейм можно было просто добавить в тег php с условием.
Как видим мы в условии просто записали обычный текст без синтаксиса PHP.

Мы могли записать это и обычным способом или альтернативным, но в PHP

<?php  if ($name == 'Админ') :     echo 'если в переменную нейм попадет админ то выводим  <br>Доступ разрешен. ';
 
   elseif ($name == "Пользователь") : echo "$name , для доступа авторизуйтесь под админ. <p> Мы вставили переменную PHP, как обычно </p>";
 
   else :  echo 'И закрыли условие командой end if';
 
   endif; ?> 

Поменяйте нейм в переменной на Пользователь, а после на 1.

Так же вы вы сможете записывать все, из вышеперечисленных циклов и условий. Пример

<?php 
$num = 1;
while ($num < 5) : ?>
Будем увеличивать пока 1 не станет <?= $num++ ?> <br> 
<?php endwhile; ?>

С условием switch, case с записью в альтернативном синтаксисе есть ньюанс. Между switch и первым case не должно быть пробелов. Пример

<?php switch ($num): ?><?php  // лучше записать так чтобы ваш редактор не выставил пробел автоматически
case 1: ?>
текст кейс равен 1
<?php case 4: ?>
текст кейс равен 4
<?php case 5: ?>
переменная равна 5
<?php endswitch ?>

   Попробуйте сами записать с пробелом и если вы уберете пробел к примеру в VS Code, то он сам его вернет и выдаст ошибку, поэтому запись верху предпочтительнее.  

<?php switch ($num): ?> 
<?php<p>   case 5: ?></p>
<?php endswitch ?>

Да у нас  переменная нум стала 5, так как мы ее увеличили в цикле. while

Домашнее задание

Возьмем из раннее созданного урока наш многомерный массив шкаф и выведем его для примера циклом foreach и for, записав альтернативным синтаксисом.

$shkaf = [
' майка ' => [' майка с рисунком ', 7, ' футболки однотонные ', 5],
' свитер' => [' полувер ', 3, ' шерстяной ', 4,],
' джинсы ' => [' синие ', 4, ' черные ',],
];

И если вы не забыли, для того чтобы перебрать массив циклом for, нужно в нем переписать ключи в числа, вместо строк.  

Проверить домашнее задание

Продолжить просмотр за:
100 Лит
15:05
115
Lit
RSS
Нет комментариев. Ваш будет первым!

Похожий контент

Apache и Nginx– популярные веб-серверы с открытым исходным кодом, которые часто использу...
Let’s Encrypt – это сервис бесплатных доверенных SSL-сертификатов, которые выдаются чере...
Nginx – один из популярнейших веб-серверов в мире. Он может обрабатывать высокие нагрузк...
Let’s Encrypt – это центр сертификации (ЦС), который предлагает простой способ создания ...