流程控制的替代語法

(PHP 4, PHP 5, PHP 7, PHP 8)

PHP 提供了一些流程控制的替代語法,包括 ifwhile,forforeachswitch。替代語法的基本形式是把左花括號(hào)({)換成冒號(hào)(:),把右花括號(hào)(})分別換成 endif;,endwhile;,endfor;endforeach; 以及 endswitch;。

<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>

在上面的例子中,HTML 內(nèi)容“A is equal to 5”用替代語法嵌套在 if 語句中。該 HTML 的內(nèi)容僅在 $a 等于 5 時(shí)顯示。

替代語法同樣可以用在 elseelseif 中。下面是一個(gè)包括 elseifelseif 結(jié)構(gòu)用替代語法格式寫的例子:

<?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;
?>

注意:

不支持在同一個(gè)控制塊內(nèi)混合使用兩種語法。

警告

switch 和第一個(gè) case 之間的任何輸出(含空格)將導(dǎo)致語法錯(cuò)誤。例如,這樣是無效的:

<?php switch ($foo): ?>
    <?php case 1?>
    ...
<?php endswitch ?>

而這樣是有效的,因?yàn)?switch 之后的換行符被認(rèn)為是結(jié)束標(biāo)記 ?> 的一部分,所以在 switchcase 之間不能有任何輸出:

<?php switch ($foo): ?>
<?php 
case 1?>
    ...
<?php endswitch ?>

更多例子參見 whileforif。