php中判断语句的冒号,endif,endwhile,endfor是什么
在zblog、wordpress等程序的模版里看到这种语法:
<?php if($zbp->Config('D_Yoga')->YdLogo): ?> <span class="xtips4">(内容)</span> <?php endif; ?>
初次见到很奇怪,以为是博客程序自己定义的模板语言,后来发现不是的,这就是php自己的语法,是PHP流程控制的替代语法。
PHP中那些语法有替代语法?
流程控制(包括if,while,forforeach,switch)这几个语句有替代语法。
替代语法的基本形式:
左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;
例子:
<?php if ($a<0): ?> 是负数拉 <?php endif; ?>
上面的语句等同于
<?php if ($a<0){ ?> 是负数拉 <?php } ?
具体语法如下:
if语句的替代语法使用如下:
<?php if ($a == 5): ?> <div>等于5</div> <?php elseif ($a == 6): ?> <div>等于5</div> <?php else: ?> <div>不是5就是6</div> <?php endif; ?>
while替代语法:
<?php while (expr): ?> <li>循环点什么</li> <?php endwhile; ?>
for替代语法:
<?php for (expr1; expr2; expr3): ?> <li>循环点什么</li> <?php endfor; ?> foreach替代语法: <?php foreach (expr1): ?> <li>循环点什么</li> <?php endforeach; ?>
switch替代语法:
<?php switch ($i): case 0: echo "i equals 0"; break; case 1: echo "i equals 1"; break; case 2: echo "i equals 2"; break; default: echo "i is not equal to 0, 1 or 2"; endswitch; ?>
用途:
使HTML和PHP代码编辑混合页面时更加干净整齐。
乱七八糟的混合代码让人一看头都晕掉,修改别人这种代码的时候宁可重写,有了这些没有花括号的替代语法,代码就简洁多了。