批改状态:合格
老师批语:代码写的挺好!文章整体有点乱,bt_code不要乱用!
php中的运算符
==:两边操作数值相等即可
===两边操作数不仅值相等,类型也要相同
!==两边操作数值不相等
<=> 太空船运算符[当左边的小于右边输出-1 当左边的大于右边的输出1 当两边相等输出0]
例:// == 两边操作数值相等var_dump(100 == '100'); // 输出true// === 两边操作数值和类型都相等var_dump(200 === '200'); // 返回false 两边操作数类型不同// !== 两边操作数比较值,值不相等返回truevar_dump(200 !== 100);// 太空船运算符var_dump(10 <=> 20); // 输出 -1var_dump(10 <=> 10); // 输出 0var_dump(20 <=> 10); // 输出 1
&&:逻辑与运算符,两边的表达式全为true,否则返回false
||:逻辑或运算符,两边的表达式只要有一个为true则返回true
例:var_dump((10 > 8) && (10 > 5)); // 输出true 两边表达式全为trueecho '<br>';var_dump((10 > 8) && (5 > 15)); // 输出false 右边表达式为false 所以输出falseecho '<br>';var_dump((10 > 8) || (5 > 15)); // 输出true 左边表达式为true故输出true
第一个表达式不成立时直接走else区间不会再去计算第二个表达式
// 以下面例子为例 当$username表达式不成立时直接走else输出no不会再计算$username === 'admin';例:$username = '张三';if ($username && $username === 'admin') {echo 'ok';}elseecho 'no';}
表达式 ? 表达式为走的真区间 : 表达式为假走的区间;
??:三元运算中的合并运算(用于执行isset()检测的三元运算的快捷方式)
例:// 常规写法$price = 4000;if($price>3000) {echo '有点贵';} else {echo '买它';}// 三元运算符写法echo $price > 3000 ? '有点贵' : '买它';// 三元运算默认值$password = '123456';// 当$password存在时输出$password的值否则输出给定的默认值echo isset($password) ? $password :'root';// 使用??简化:isset() + 三元运算 = 变量默认值 方式echo $password ?? 'root';
php中的分值结构
if(条件) { 执行代码 }
例:$price = 500;// 1.单分支结构if ($price >= 500) {// 价格大于等于500打九折echo $price * 0.9;}
简写:当流程控制中只有一行代码的时候,可以省略大括号
例:$price = 500;if ($price >= 500) echo $price * 0.8;
if(条件) : 执行代码 endif[就是把初始大括号用冒号代替,结束大括号用指定关键字代替]
// 模板语法例:$price = 500;if ($price >= 500) :// 价格大于等于500打九折echo $price * 0.9;endif;// 一行简写if ($price >= 500) : echo $price * 0.5;endif;
if(条件) { true执行代码 } else { false执行代码 }
例:$price = 300;if ($price >= 300) {// 当价格大于等于300是走这个区间打九折$payment = $price * 0.9;} else {// 当价格不满足表达式价格小于300时走这个区间,原价格$payment = $price;}// 打印最后结账价格var_dump($payment);
if(条件) : true执行代码 else : false执行代码 endif
注意:else前面的花括号直接去掉没有东西代替
例:$price = 300if ($price >= 300) :$payment = $price * 0.9;else :$payment = $price;endif;var_dump($payment);
多分支:if(条件)else { 执行代码 } elsef(条件){执行代码} else { 默认值 }
注意:这里的elseif根据需求来写上面两个只是例子
例:$price = 5000;if ($price > 1000 && $price < 2000) {$payment = $price * 0.9;} elseif($price > 2000 && $price < 3000) {$payment = $price * 0.7;} elseif ($price > 3000 && $price < 4000) {$payment = $price * 0.6;} elseif($price>4000 && $price <= 5000) {$payment = $price * 0.5;}else {// 默认值(当所有条件都不符合时)$payment = $price;}echo '实付价钱'.$payment;
if(条件):执行代码; elseif(条件):执行代码;else:默认值;endif
例:$price = 3000;// 模板语法if ($price > 1000 && $price < 2000) :$payment = $price * 0.9;elseif($price > 2000 && $price < 3000) :$payment = $price * 0.7;elseif ($price > 3000 && $price < 4000) :$payment = $price * 0.6;elseif($price>4000 && $price <= 5000) :$payment = $price * 0.5;else :// 默认值(当所有条件都不符合时)$payment = $price;endif;echo '实付价钱'.$payment;
switch (条件) {case 表达式:执行代码break;default:执行代码break;}
例:$discount = 0.7;// 折扣$price = 6000; // 价钱switch ($discount) {case 0.7:$payment = $price * $discount;break;case 0.8:$payment = $price * $discount;break;case 0.9:$payment = $price * $discount;break;default:$payment = $price;break;}echo '实际结账啊'.$payment;
// 模板语法switch (条件) :case 表达式:执行代码break;default:执行代码break;endswitch;
例:$discount = 0.7;// 折扣$price = 5000; // 价钱switch ($discount) :case 0.7:$payment = $price * $discount;break;case 0.8:$payment = $price * $discount;break;case 0.9:$payment = $price * $discount;break;default:$payment = $price;break;endswitch;echo '实际结账啊'.$payment;
php循环
// while循环(入口循环:入口判断) while (条件) { 需要执行的代码 }
current($cities); // 输出数组中的当前元素
next($cities); // 指针下移
reset($cities);数组指针复位重新指向第一个
例:$cities = ['海淀', '丰台', '朝阳', '大兴', '昌平'];echo current($cities); // 输出数组中的当前元素 "海淀"next($cities); // 指针下移echo current($cities); // 输出丰台 上面指针下移所以输出丰台while ($city = current($cities)) {echo $city, '<br>';// 前移指针next($cities);}// 输出结果依次输出,海淀,丰台,朝阳,大兴,昌平
while(条件): 执行代码 endwhile
例:$cities = ['海淀', '丰台', '朝阳', '大兴', '昌平'];while ($city = current($cities)) :echo $city, '<br>';// 前移指针next($cities);endwhile;
do {执行代码} while (条件);判断型循环:出口判断 无论条件成不成立先执行一次
例:$cities = ['海淀', '丰台', '朝阳', '大兴', '昌平'];do {echo $city;next($cities);} while ($city = current($cities));// 输出结果丰台,朝阳,大兴,昌平因为在判断条件前限制性了一次数组指针下移
for (循环变量的初始化; 循环条件; 更新循环条件){ 执行代码 }
count(变量名); 数数,数数组中的元素个数
例:这里$i的起始值是数组中元素的下标值 [下标值是从0开始的]for ($i=0; $i < count($cities) ; $i++) {var_dump($cities[$i]); echo '<br>';}
for (循环变量的初始化; 循环条件; 更新循环条件): 执行代码 endfor
例:for ($i=0; $i < count($cities) ; $i++) :var_dump($cities[$i]); echo '<br>';endfor;
模板语法在模板中的应用
// 数据表查询结果通常是一个二维数组,用二维数组来模拟$users = [['id'=>1, 'name'=>'zhu', 'grade'=> 60],['id'=>2, 'name'=>'admin', 'grade'=> 50],['id'=>3, 'name'=>'peter', 'grade'=> 20],];?><!DOCTYPE html><html><head><meta charset='utf-8'><meta name="viewport" content="width=device-width, initial-scale=1.0"><title><?php echo '这是title' ?></title></head><body><table border='1'><?php for($i=0;$i<count($users);$i++) : ?><tr><td><?php echo $users[$i]['id']?></td><td><?php echo $users[$i]['name']?></td><td><?php echo $users[$i]['grade']?></td></tr><?php endfor; ?></table></body></html>

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号