最近在读一个系统的代码,不断的遇到类似下面的这样格式的写法。
<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>
虽然也能大体知道这样的代码是干嘛的,但是始终觉得不是很痛快,仔细读了下相关的手册,了然了。
这样的代码用了PHP中的流程控制替代语法:
PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch。
替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成endif;,endwhile;,endfor;,endforeach; 以及 endswitch;。
在上面的例子中,HTML 内容“A is equal to 5”用替代语法嵌套在 if 语句中。该 HTML 的内容仅在 $a 等于 5 时显示。
替代语法同样可以用在 else 和 elseif 中。下面是一个包括 elseif 和 else 的 if 结构用替代语法格式写的例子
<?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;
?>
这个写法比较少见,第一次看到时感觉很另类,在HTML和php代码混合的页面用的比较多。在这样的系统中用流程控制替代语法代码看起来更干净利索些。