博客列表 >0109分支与循环的模板语法笔记

0109分支与循环的模板语法笔记

曾
原创
2020年02月03日 16:50:07602浏览

分支的模板语法

模板语法主要是解决HTML与PHP混编时代码太多不方便观察阅读,使用模板语法使代码简介清晰,也方便日后维护。

单分支if

普通语法
if(条件){
执行语句;
}

  1. <?php
  2. //分支的模板语法
  3. //单分支普通语法
  4. $grade = 80;
  5. if($grade>=59){
  6. echo '<h2>及格</h2>';
  7. }
  8. ?>

模板语法
<?php if(条件):?>
执行语句
<?php endif;?>

  1. //单分支模板语法
  2. <?php if($grade>=59):?>
  3. <h2>及格</h2>
  4. <?php endif;?>

两个语法输出结果是一样的,都是‘及格’。

双分支IF()ELSE

普通语法
if(条件){
执行语句;
}else{
执行语句;
}

  1. <?php
  2. //双分支普通语法
  3. $week = 5;
  4. if($week>0 && $week<=5){
  5. echo '<p>去上班</p>';
  6. }else{
  7. echo '<p>在家休息</p>';
  8. }
  9. ?>

模板语法
<?php if(条件):?>
执行语句
<?php else:?>
执行语句
<?php endif;?>

  1. //双分支模板语法
  2. <?php if($week>0 && $week<=5):?>
  3. <p>去上班</p>
  4. <?php else:?>
  5. <p>在家休息</p>
  6. <?php endif;?>

多分支if()elseif()else

普通语法
if(条件){
执行语句;
}elseif(条件){
执行语句;
}else{
执行语句;
}

  1. <?php
  2. $week = 6;
  3. //多分支普通语法
  4. if($week>0 && $week<=2){
  5. echo '<p>一周才开始</p>';
  6. }elseif($week>2 && $week<=4){
  7. echo '<p>还得继续上班</p>';
  8. }elseif($week>4 && $week<=5){
  9. echo '<p>快休息了</p>';
  10. }else{
  11. echo '<p>可以在家休息了</p>';
  12. }
  13. ?>

模板语法
<?php if(条件):?>
执行语句
<?php elseif(条件):?>
执行语句
<?php else:?>
执行语句
<?php endif;?>

  1. $week = 6;
  2. <?php if($week>0 && $week<=2):?>
  3. <p>一周才开始</p>
  4. <?php elseif($week>2 && $week<=4):?>
  5. <p>还得继续上班</p>
  6. <?php elseif($week>4 && $week<=5):?>
  7. <p>快休息了</p>
  8. <?php else:?>
  9. <p>可以在家休息了</p>
  10. <?php endif;?>

多分支switch

普通语法
switch(true){
case 条件:
执行语句;
break;
case 条件:
执行语句;
break;
case 条件:
执行语句;
break;
default:
执行语句;
}

  1. <?php
  2. $week = 6;
  3. //多分支switch普通语法
  4. switch(true){
  5. case $week>0 && $week<=2:
  6. echo '<p>一周才开始</p>';
  7. break;
  8. case $week>2 && $week<=4:
  9. echo '<p>还得继续上班</p>';
  10. break;
  11. case $week>4 && $week<=5:
  12. echo '<p>快休息了</p>';
  13. break;
  14. default:
  15. echo '<p>可以在家休息了</p>';
  16. }
  17. ?>

模板语法
switch的模板语法要特别注意,和其他的不太一样,switch与第一个case之间不能有内容输出,最好写在一个<?php ?>标签里面。
<?php switch(true):
case 条件:?>
执行语句
<?php break;?>
<?php case 条件:?>
执行语句
<?php break;?>
<?php default;?>
执行语句
<?php endswitch;?>

  1. $week = 6;
  2. <?php switch(true):
  3. case $week>0 && $week<=2:?>
  4. <p>一周才开始</p>
  5. <?php break;?>
  6. <?php case $week>2 && $week<=4:?>
  7. <p>还得继续上班</p>
  8. <?php break;?>
  9. <?php case $week>4 && $week<=5:?>
  10. <p>快休息了</p>
  11. <?php break;?>
  12. <?php default:?>
  13. <p>可以在家休息了</p>
  14. <?php endswitch;?>

循环的模板语法

for循环

普通语法
for(设置初始循环变量;条件;循环变量更新){
执行语句;
}

  1. <?php
  2. $arr = ['html','css','js','php'];
  3. for($i = 0;$i < count($arr);$i++){
  4. echo '<span>循环输出的值为:'.$arr[$i].'</span><br>';
  5. }
  6. ?>

模板语法
注意:执行语句里面有HTML代码,也有变量,要解析变量,就要用<?php ?>标签把变量包裹起来然后在里面写上PHP代码。
<?php for(设置初始循环变量;条件;循环变量更新):?>
执行语句
<?php endfor;?>

  1. $arr = ['html','css','js','php'];
  2. <?php for($i = 0;$i < count($arr);$i++):?>
  3. <!-- 执行语句里面有HTML代码,也有变量,要解析变量,就要用<?php ?>标签把变量包裹起来然后在里面写上PHP代码 -->
  4. <span>循环输出的值为:<?php echo $arr[$i]?></span><br>
  5. <?php endfor;?>

while循环

普通语法
设置初始变量;
while(条件){
执行语句;
初始变量更新;
}

  1. <?php
  2. $arr = ['html','css','js','php'];
  3. $i = 0;
  4. while($i < count($arr)){
  5. echo '<span>循环输出的值为:'.$arr[$i].'</span><br>';
  6. $i++;
  7. }
  8. echo '<hr>';
  9. ?>

模板语法

  1. <?php $i = 0;
  2. while($i < count($arr)):?>
  3. <span>循环输出的值为:<?php echo $arr[$i]?> </span><br>
  4. <?php $i++;?>
  5. <?php endwhile;?>

foreach循环

普通语法

  1. <?php
  2. $navs = [
  3. ['name'=>'首页','url'=>'index.php'],
  4. ['name'=>'新闻','url'=>'news.php'],
  5. ['name'=>'关于我们','url'=>'about.php'],
  6. ];
  7. foreach($navs as $nav){
  8. echo '<a href="'.$nav['url'].'">'.$nav['name'].'</a>';
  9. }
  10. ?>

模板语法

  1. $navs = [
  2. ['name'=>'首页','url'=>'index.php'],
  3. ['name'=>'新闻','url'=>'news.php'],
  4. ['name'=>'关于我们','url'=>'about.php'],
  5. ];
  6. <?php foreach($navs as $nav):?>
  7. <a href="<?php echo $nav['url']?>"><?php echo $nav['name']?> </a>
  8. <?php endforeach;?>

关于模板语法里执行代码里面有HTML代码与PHP变量,可以使用<?php ?>标签把变量(或者其他的PHP命令包裹起来),如果只是单个变量可以使用<?=变量名?>来处理,以上面foreach语言为例

  1. $navs = [
  2. ['name'=>'首页','url'=>'index.php'],
  3. ['name'=>'新闻','url'=>'news.php'],
  4. ['name'=>'关于我们','url'=>'about.php'],
  5. ];
  6. <?php foreach($navs as $nav):?>
  7. //这里使用的就是<?=变量名?>的方法
  8. <a href="<?=$nav['url']?>"><?=$nav['name']?> </a>
  9. <?php endforeach;?>

最终输出的效果是一样的。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议