php中判断语句的冒号,endif,endwhile,endfor是什么

admin2023-01-181141

在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代码编辑混合页面时更加干净整齐。
乱七八糟的混合代码让人一看头都晕掉,修改别人这种代码的时候宁可重写,有了这些没有花括号的替代语法,代码就简洁多了。

网友评论