I feel compelled to give a more elegant way using heredoc than the other comment:
<ul>
<?php foreach($list as $item): echo
<<<ITEM
<li id="itm-$item[number]">Item $item[name]</li>
ITEM;
endforeach; ?>
</ul>
Which works better with multi line blocks, as you only need one overall php tag.
(please don't omit the closing </li> tag despite it being legal, personal preference)Алтернативен синтакс за контролни структури
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Алтернативен синтакс за контролни структури
Референца за `control-structures.alternative-syntax.php` со подобрена типографија и навигација.
Алтернативен синтакс за контролни структури
(PHP 4, PHP 5, PHP 7, PHP 8)
PHP нуди алтернативен синтакс за некои од своите контролни структури; имено, if,
while, for,
foreachПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во switch. Во секој случај, основната форма на алтернативниот синтакс е да се промени отворачката заграда во двоеточие (:) и затворачката заграда во
endif;, endwhile;,
endfor;, endforeach;, или
endswitch;, соодветно.
<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>
Во горниот пример, HTML блокот "A е еднакво на 5" е вгнезден во
if изјава напишана во алтернативен синтакс. HTML блокот ќе се прикаже само ако $a е еднакво на 5.
Алтернативниот синтакс се применува и на else and
elseif . Следното е
if структура со elseif and
else во алтернативен формат:
<?php
if ($a == 5):
echo "a equals 5";
echo "...";
elseif ($a == 6):
echo "a equals 6";
echo "!!!";
else:
echo "a is neither 5 nor 6";
endif;
?>Забелешка:
Мешањето на синтаксите во истиот контролен блок не е поддржано.
Секој излез (вклучувајќи празни места) помеѓу switch
изјава и првиот case ќе резултира со синтаксна грешка. На пример, ова е невалидно:
<?php switch ($foo): ?>
<?php case 1: ?>
// ...
<?php endswitch; ?>
Додека ова е валидно, бидејќи завршниот прекин на редот по
switch изјавата се смета за дел од затворачката
?> и затоа ништо не се излегува помеѓу
switch and case:
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch; ?>Види исто така while, forПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во if за понатамошни примери.