首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 流程控制替代語法:冒號、endif、endwhile、endfor、endforeach、endswitch 詳解

     編輯:PHP 綜合知識

什麼是替代語法?

將 { 換為 :,將 } 換為對應的結束關鍵字,專為 PHP/HTML 混合模板 設計,提升可讀性。

語法對照表

標準語法替代語法結束標記
if (...) {if (...):endif;
while (...) {while (...):endwhile;
for (...; ...; ...) {for (...; ...; ...):endfor;
foreach (...) {foreach (...):endforeach;
switch (...) {switch (...):endswitch;

代碼示例

if/elseif/else

<?php if ($a == 5): ?>
<div>等於 5</div>
<?php elseif ($a == 6): ?>
<div>等於 6</div>
<?php else: ?>
<div>既非 5 也非 6</div>
<?php endif; ?>

while

<?php while ($row = $stmt->fetch()): ?>
<li><?= $row['name'] ?></li>
<?php endwhile; ?>

for

<?php for ($i=0; $i<10; $i++): ?>
<span><?= $i ?></span>
<?php endfor; ?>

foreach

<?php foreach ($items as $item): ?>
<option value="<?= $item['id'] ?>"><?= $item['title'] ?></option>
<?php endforeach; ?>

switch

<?php switch ($i): ?>
<?php case 0: ?>等於 0<?php break; ?>
<?php case 1: ?>等於 1<?php break; ?>
<?php default: ?>其他<?php endswitch; ?>

優勢場景

  • 模板文件:HTML 為主,PHP 邏輯少,無大括號干擾,前端設計師友好
  • 邏輯清晰:endif 比孤立的 } 更明確屬於哪個 if
  • ASP/Template 引擎遷移:語法相似,降低學習成本

不適用場景

  • 純 PHP 邏輯層(Service、Model、Controller):標準大括號配合 IDE 自動縮進、代碼折疊更高效
  • 複雜嵌套:替代語法嵌套過深反而難讀

最佳實踐

模板層用替代語法,邏輯層用標準語法。現代框架(Blade、Twig、Smarty)更進一步提供專屬模板語法,進一步分離關注點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved