php基础——流程控制
2020-06-29 04:51
621 查看
顺序控制流程
顺序就是自动的,不加任何控制的流程,从上到下执行
分支控制(选择语句)
if else选择
if ( $a > $b ) { echo "a is bigger than b" ; } elseif ( $a == $b ) { echo "a is equal to b" ; } else { echo "a is smaller than b" ; }
流程图
switch 语句
- 当一个 case 语句中的值和 switch 表达式的值匹配时 PHP 才开始执行语句
- 直到 switch 的程序段结束或者遇到第一个 break 语句为止。如果不在 case 的语句段最后写上 break 的话,PHP 将继续执行下一个 case 中的语句段
- 一个 case 的特例是 default。它匹配了任何和其它 case 都不匹配的情况
- case 表达式可以是任何求值为简单类型的表达式,即整型或浮点数以及字符串,甚至可以是运算,是个函数调用
$i = 2; function test($n1,$n2){ return $n1 + $n2; } switch ($i){ case 1: echo '今天星期一,猴子穿新衣'; break; case test(1,1): echo '今天星期二,猴子当小二'; break; default: echo '不会编了~'; }
switch测试题
// 不会编了~ 今天星期一,猴子穿新衣 // 1. 匹配case1 false 2.匹配case2 false case都未匹配到 需要找default 3.匹配default true,且无break继续向下打印直到遇到break结束. $i = 5; switch ($i){ default: echo '不会编了~'; //break; case 1: echo '今天星期一,猴子穿新衣'; break; case 2: echo '今天星期二,猴子当小二'; break; } // 今天星期二,猴子当小二 // 1. 匹配case1 false 2.匹配case2 true break结束 $j = 2; switch ($j){ default: echo '不会编了~'; //break; case 1: echo '今天星期一,猴子穿新衣'; break; case 2: echo '今天星期二,猴子当小二'; break; }
循环控制
for循环
for ( $i = 1 ; $i <= 10 ; $i ++) { echo $i ; } // 其他写法 for ($i = 0;$i<10;){ echo $i; $i++; } $i = 0; for (;$i<10;){ echo $i; $i++; }
while循环
$i = 0; while ($i<10){ echo $i; $i++; }
do…while循环
// do...while 至少执行一次 $i = 0; do{ echo $i; $i ++; }while($i<10);
流程图
流程控制的替代语法
- PHP 提供了一些流程控制的替代语法,包括
if
,while
,for
,foreach
和switch
- 替代语法的基本形式是把左花括号
{
换成冒号:
,把右花括号}
分别换成endif;
,endwhile;
,endfor;
,endforeach;
endswitch;
ifelse比较大小
$a = rand(1,10); $b = rand(1,10); include './121.php'; /* html中流程控制语法 <body> <?php if ($a > $b):?> <h1>a is bigger than b</h1> <?php elseif ($a == $b):?> <h1>a is equal to b</h1> <?php else:?> <h1>a is smaller than b</h1> <?php endif;?> </body> */ */
foreach打印水浒英雄表格
$arr = array('a'=>array('宋江','男','及时雨'), 'b'=>array('鲁智深','男','花和尚'), 'c'=>array('林冲','男','豹子头')); include '../html.html'; /* <table> <tr> <th>姓名</th> <th>性别</th> <th>外号</th> </tr> <?php foreach($arr as $key=>$value):?> <tr> <?php foreach($arr[$key] as $v):?> <td><?php echo $v; ?></td> <?php endforeach; ?> </tr> <?php endforeach; ?> </table> */
break
- break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行
- break 可以接受一个可选的数字参数来决定跳出几重循环
break基本用法
$n = 1; while (1){ $a = rand(1,1000); if ($a == 99){ echo $n; break; } $n++; }
break结束第n层循环
// 注意分析执行流程 $i = 0; while (true){ switch ($i++) { case 3: echo 'quit at 3'; break; case 5: echo 'quit at 5'; break 2; default: break; } } // quit at 3 quit at 5
continue
- continue 在循环结构用用来跳过本次循环中剩余的代码并在条件求值为真时开始执行下一次循环
- continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。默认值是 1,即跳到当前循环末尾
continue基本用法
for ($i=0; $i<2; $i++){ for ($j=0;$j<4;$j++){ if ($j == 2){ continue; } echo '$i='.$i.'$j='.$j.'<br>'; } }
分析图
遇到难的逻辑运算 会画图分析
continue跳出第n层循环
for ($i=0; $i<2; $i++){ for ($j=0;$j<4;$j++){ if ($j == 2){ continue 2; } echo '$i='.$i.'$j='.$j.'<br>'; } }
goto
- goto 操作符可以用来跳转到程序中的另一位置
- 该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记
- PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域
- goto无法跳出一个函数或类方法,也无法跳入到另一个函数或任何循环或switch 结构中
- goto可以跳出循环或者switch,通常的用法是用 goto 代替多层的 break
简单示例
goto a ; echo 'Foo' ; // 这句代码被跳过 a : echo 'Bar' ; // Bar
goto 跳出循环示例
for( $i=0, $j=50 ; $i<100 ; $i++) { while($j--) { if($j == 17) { goto end ; // 当while循环到$j==17时, goto执行直接跳出了for循环 } } } end : echo "i = $i" ; echo "j = $j" ;
循环练习题
打印空心金字塔
<?php /* ▲ ▲▲ ▲▲▲ */ for ($i=1; $i<5; $i++){ for ($j = 0;$j < $i;$j++){ echo '▲'; } echo '<br>'; } /* ▲ => 第1层 有1 (2*(层数-1)+1)个 ▲▲▲ => 第2层 有3 (2*(层数-1)+1)个 ▲▲▲▲▲ => 第3层 有5 (2*(层数-1)+1)个 */ for ($i = 1; $i <= 5; $i++){ for ($j=1; $j<=2*($i-1)+1; $j++){ echo '▲'; } echo '<br>'; } /* ▲ => 第1层 有2 (层数-当前层数)个空格 ▲▲▲ => 第2层 有1 (层数-当前层数)个空格 ▲▲▲▲▲ => 第3层 有0 (层数-当前层数)个空格 */ $n = 5; for ($i = 1; $i<=$n; $i++){ // 打印空格 for ($k=1; $k<=$n-$i; $k++){ echo '▼'; } for ($j=1; $j<=2*($i-1)+1; $j++){ echo '▲'; } echo '<br>'; } echo '<hr>'; /* ▲ ▲*▲ ▲***▲ ▲▲▲▲▲▲▲ */ $n = 5; for ($i = 1; $i<=$n; $i++){ $num = 1; for ($k=1; $k<=$n-$i; $k++){ echo '▼'; } for ($j=1; $j<=2*($i-1)+1; $j++){ if ($i>1 && $i<$n){ if ($num>1 && $num<2*($i-1)+1){ echo '▼'; }else{ echo '▲'; } }else{ echo '▲'; } $num++; } echo '<br>'; }
相关文章推荐
- PHP 基础知识总结二(流程控制语句)
- php基础系列----3数据类型及运算和流程控制
- php学习基础篇之基础函数(数学 日期 字符串)、php循环流程控制
- PHP基础学习之流程控制的实现分析
- PHP基础之流程控制1——if/else/elseif/else if
- 【PHP】基础笔记 07 —— 流程控制 之 条件语句
- PHP基础之流程控制
- PHP基础之流程控制2——流程控制的替代语法
- 【PHP】基础笔记 08 —— 流程控制 之 循环语句
- PHP零基础入门-流程控制
- PHP基础之流程控制3——while/do-while
- PHP基础----04流程控制
- PHP基础之流程控制4——for/foreach
- PHP_零基础学php_2变量、预定义变量、预定义常量、表达式、运算符、程序控制流程
- 【PHP基础 04-流程控制】请列出3种PHP数组循环操作的语法,并注明各种循环的区别。
- 瞎玩php基础——语言基础,流程控制语句
- PHP基础之流程控制5——break/continue
- php基础知识之运算符和流程控制
- PHP基础之流程控制
- PHP基础之流程控制6——switch语句