0706作业
一、实例演示分支结构,特别是多分支与switch,
1.单分支
<?php
$day = 1;
// 实际支付的金额,默认值是不打折的金额
if ($day === 1) echo '今天是星期' . $day . '<hr>';
2. 双分支
$day = 1;
if ($day == 6 || $day == 7) :
// 模型语句
echo '今天是休息日';
else :
echo '今天是苦逼工作日';
endif;
echo '<hr>';
3.多分支
switch (true) {
case $day == 1;
echo '星期一';
break;
case $day == 2;
echo '星期二';
break;
case $day == 3;
echo '星期三';
break;
case $day == 4;
echo '星期四';
break;
case $day == 5;
echo '星期五';
break;
default:
echo '双休日';
}
要保证能进入循环体,入口设置了switch (true)
4.isset+三元判断
<?php
<?php
error_reporting(E_ALL);
echo $username ?? 'administrator';
//等同于 echo isset($username) ? $username : 'administrator';
二、使用多种循环方式来遍历数组,while,for
1.while循环遍历数组
$i = 0;
while ($i < count($arr)) {
echo '当前元素为:' . $arr[$i] . '<br>';
$i++;
//循环体内必须要有更新循环条件的语句,否则会进入死循环
}
循环体内必须要有更新循环条件的语句,否则会进入死循环
2.for循环遍历数组
<?php
error_reporting(E_ALL);
$arr = ['a', 'b', 'c', 'd', 'e'];
for ($i = 0; $i < count($arr); $i++) {
echo '当前元素为:' . $arr[$i] . '<br>';
}
课堂小结
比较运算返回布尔值
1.逻辑运算符
符号 | 描述 |
---|---|
== | 值比较,当操作符两边的操作数类型不一致时会触发类型自动转换。 |
=== | 除了值相等,类型也必须一致 |
<=> | 太空船运算符 |
&& | 与运算,两边表达式除非全部为true,否则返回false |
|| | 或运算,两边表达式只要有一个为true,则返回true |
条件满足?为真执行:为假执行 | 三元运算 |
?? | isset()+三元运算 |
短路求值:如果一个表达式为false,则直接执行else分支,不会再去计算后面的条件
isset()+三元运算 =变量默认值设置
2.太空船运算符
左值<=>右值
序号 | 描述 |
---|---|
1 | 左-右>0 返回1 |
2 | 左-右<0 返回-1 |
3 | 左-右=0 返回0 |
3.代码简写
当流程语控制句只有一行代码的时候,可以省略大括号
模板语法:就是干掉流程控制中大括号
将起始大括号用冒号:代替,将结束大括弧用特殊关键字代替(endif)
do {}while没有对应的模板语法
4.分支控制
类型 | 描述 |
---|---|
入口判断型 | while 进入循环代码之前进行判断,只有条件为真才执行循环 |
出口判断型 | do{}while条件,无论条件是否满足都至少先执行一遍 |
记数型循环 | for(循环变量的初始化;循环条件;更新循环条件{执行代码块}) |
循环体内必须要有更新循环条件的语句,否则会进入死循环
数组指针复位,重新指向第一个reset()
5.中断循环体
类型 | 描述 |
---|---|
break | 终止程序,后续循环不继续,完全退出循环体,如1、2、3 ,从4后面都不玩了全部回家 |
continue | 跳出当前循环,但后续循环会继续,如1、2、3、、5、6……4不玩了而已 |