批改状态:合格
老师批语:写的还行!尽量跟上进度!
比较: == === !==;
太空船(组合比较): <=> ;
逻辑: && || ;
三元:? : ;
null合并: ?? ;
示例:
<?php// 1.比较运算符“==”,“===”,“!==”$age = 10;$years = 18;// 使用比较要用“==”或“===”,“=”是赋值var_dump($age == $years);var_dump($age === $years);// 非运算符var_dump($age !== $years);echo '<hr>';if ($age === $years) {echo '完全相等';} else {echo '不完全相等';}echo '<hr>';// 操作类型不一致的值用“==”做比较时两边的值会自动转换var_dump(18 == '18');var_dump(18 == 18);// 用“===”做比较时两边的值类型也必须一致var_dump(18 === '18');var_dump(18 === 18);echo '<hr>';// 2.太空船运算符(组合比较):“<=>”,返回结果为-1,0,1var_dump(18 <=> 28);var_dump(18 <=> 18);var_dump(18 <=> 10);echo '<hr>';// 3.逻辑运算符:“&&”,“||”$name = 20;// 必须全部满足才返回true,如果有个条件为false,就不会计算后面的条件了,叫做短路求值if ($name > 20 && $name < 30) {echo '成立';} else {echo '不成立';}// 只要满足其中一个条件即返回trueif ($name > 10 || $name < 20) {echo '成立';} else {echo '不成立';}echo '<hr>';// 4.三元运算符:“? :”var_dump($name > 10 && $name !== 20 ? '成立' : '不成立');echo '<hr>';// 合并运算:“??”// $pwd = '135642';if (isset($pwd)) {echo sha1($pwd);} else {echo '密码错误';}echo '<hr>';// 下面的代码表示如果$pwd不存在则输出'密码错误'echo $pwd ?? '密码错误';
运行结果

// 1.单分支// 当流程控制语句中只有一行代码时,可以省略大括号$age = 60;if ($age >= 58) {echo '老年人';}// 可以写成if ($age >= 58) echo '老年人';// 还可以用模板语法写成(模板语法中用“:和end标志”代表大括号):if ($age >= 58) :echo '老年人';endif;
// 2.双分支if ($age !== 60) {echo '还不是老年人呢';} else {echo '年龄' . $age . '岁了';}// 模板语法来写:if ($age !== 60) :echo '还不是老年人呢';else :echo '年龄' . $age . '岁了';endif;
// 3.多分支if ($age >= 1 && $age < 20) {echo '年轻人';} elseif ($age >= 20 && $age < 40) {echo '青年人';} elseif ($age >=40 && $age < 60) {echo '中年人';} elseif ($age >=60 && $age < 80) {echo '老年人';} else {echo '外星人';}// 用模版语法来写:if ($age >= 1 && $age < 20) :echo '年轻人';elseif ($age >= 20 && $age < 40) :echo '青年人';elseif ($age >=40 && $age < 60) :echo '中年人';elseif ($age >=60 && $age < 80) :echo '老年人';else :echo '外星人';endif;
// 还可以用switch简化来写(通常用于单值判断):switch ($age) {case $age >= 1 && $age < 20 :echo '年轻人';break;case $age >= 20 && $age < 40 :echo '青年人';break;case $age >= 40 && $age < 60 :echo '中年人';break;case $age >= 60 && $age < 80 :echo '老年人';break;default : '外星人';die('不是人');}// 模板语法:switch ($age) :case $age >= 1 && $age < 20 :echo '年轻人';break;case $age >= 20 && $age < 40 :echo '青年人';break;case $age >= 40 && $age < 60 :echo '中年人';break;case $age >= 60 && $age < 80 :echo '老年人';break;default : '外星人';die('不是人');endswitch;
while:入口判断循环 while(条件){...}
do while:出口判断循环 do{...}while(条件),没有模板语法
for:计数循环 for(循环变量初始化, 循环条件, 更新循环条件){...}
示例:
<?php// 模拟一个数组$data = ['name' => '小明', '年龄' => 18, '性别' => '男'];// 1.入口判断循环:while(条件){...},循环开始之前先判断条件,为真才执行// current()输出数组中当前元素的值,不会移动指针// next()将指针下移一位while ($database = current($data)) {echo $database . ',';next($data);}echo '<br>';// 此时指针已被调至末尾,要重置指针用reset()reset($data);// 模板语法while ($database = current($data)) :echo $database . ',';next($data);endwhile;echo '<hr>';reset($data);// 2.出口判断循环:do{...}while(条件),没有模板语法do {echo $database . ',';next($data);}while ($database = current($data));echo '<hr>';// 3.计数循环:for(循环变量初始化, 循环条件, 更新循环条件){...}// count()计算数组中的单元数目,或对象中的属性个数$array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];// 数组遍历// for ($i = 0; $i < count($array); $i++) {// echo $array[$i] . '<br>';// }echo '<hr>';for ($i = 0; $i < count($array); $i++) {// 中断,输出1-6,7不会输出// if ($i === 6) break;// 跳过元素3、5,输出其他的元素if ($i === 4 || $i === 2) continue;echo $array[$i] . '<br>';}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号