我覺得有必要提供一個比其他註解更優雅的使用 heredoc 的方法
<ul>
<?php foreach($list as $item): echo
<<<ITEM
<li id="itm-$item[number]">Item $item[name]</li>
ITEM;
endforeach; ?>
</ul>
這種寫法更適合多行區塊,因為你只需要一個 PHP 標籤。
(即使省略 </li> 標籤是合法的,也請不要省略,這是個人偏好)(PHP 4, PHP 5, PHP 7, PHP 8)
PHP 為某些控制結構提供了替代語法;也就是 if、while、for、foreach 和 switch。在每一種情況下,替代語法的基本形式是將開括號改為冒號 (:),並將閉括號分別改為 endif;、endwhile;、endfor;、endforeach; 或 endswitch;。
<?php if ($a == 5): ?>
A 等於 5
<?php endif; ?>在上面的例子中,HTML 區塊「A 等於 5」嵌套在以替代語法編寫的 if 陳述式中。僅當 $a 等於 5 時,才會顯示 HTML 區塊。
替代語法也適用於 else 和 elseif。以下是具有替代格式的 elseif 和 else 的 if 結構
<?php
if ($a == 5):
echo "a 等於 5";
echo "...";
elseif ($a == 6):
echo "a 等於 6";
echo "!!!";
else:
echo "a 不是 5 也不是 6";
endif;
?>注意:
在同一個控制區塊中混合語法是不支援的。
switch 陳述式和第一個 case 之間的任何輸出(包括空格)都會導致語法錯誤。例如,這是無效的
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch; ?>而這是有效的,因為 switch 陳述式後面的尾隨換行符號被視為結束 ?> 的一部分,因此在 switch 和 case 之間沒有任何輸出
<?php switch ($foo): ?>
<?php case 1: ?>
...
<?php endswitch; ?>