Blogger Information
Blog 17
fans 0
comment 0
visits 19020
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP运算符、PHP分支结构和循环、模板语法在模板中的应用
嘬一口啊
Original
852 people have browsed it

php中的运算符

  • 比较运算符

==:两边操作数值相等即可

===两边操作数不仅值相等,类型也要相同

!==两边操作数值不相等

<=> 太空船运算符[当左边的小于右边输出-1 当左边的大于右边的输出1 当两边相等输出0]

  1. 例:
  2. // == 两边操作数值相等
  3. var_dump(100 == '100'); // 输出true
  4. // === 两边操作数值和类型都相等
  5. var_dump(200 === '200'); // 返回false 两边操作数类型不同
  6. // !== 两边操作数比较值,值不相等返回true
  7. var_dump(200 !== 100);
  8. // 太空船运算符
  9. var_dump(10 <=> 20); // 输出 -1
  10. var_dump(10 <=> 10); // 输出 0
  11. var_dump(20 <=> 10); // 输出 1
  • 逻辑运算符

&&:逻辑与运算符,两边的表达式全为true,否则返回false

||:逻辑或运算符,两边的表达式只要有一个为true则返回true

  1. 例:
  2. var_dump((10 > 8) && (10 > 5)); // 输出true 两边表达式全为true
  3. echo '<br>';
  4. var_dump((10 > 8) && (5 > 15)); // 输出false 右边表达式为false 所以输出false
  5. echo '<br>';
  6. var_dump((10 > 8) || (5 > 15)); // 输出true 左边表达式为true故输出true

短路求值

第一个表达式不成立时直接走else区间不会再去计算第二个表达式

  1. // 以下面例子为例 当$username表达式不成立时直接走else输出no不会再计算$username === 'admin';
  2. 例:
  3. $username = '张三';
  4. if ($username && $username === 'admin') {
  5. echo 'ok';
  6. }else
  7. echo 'no';
  8. }
  • 三元运算符

表达式 ? 表达式为走的真区间 : 表达式为假走的区间;

??:三元运算中的合并运算(用于执行isset()检测的三元运算的快捷方式)

  1. 例:
  2. // 常规写法
  3. $price = 4000;
  4. if($price>3000) {
  5. echo '有点贵';
  6. } else {
  7. echo '买它';
  8. }
  9. // 三元运算符写法
  10. echo $price > 3000 ? '有点贵' : '买它';
  11. // 三元运算默认值
  12. $password = '123456';
  13. // 当$password存在时输出$password的值否则输出给定的默认值
  14. echo isset($password) ? $password :'root';
  15. // 使用??简化:isset() + 三元运算 = 变量默认值 方式
  16. echo $password ?? 'root';

php中的分值结构

  • 单分支结构

if(条件) { 执行代码 }

  1. 例:
  2. $price = 500;
  3. // 1.单分支结构
  4. if ($price >= 500) {
  5. // 价格大于等于500打九折
  6. echo $price * 0.9;
  7. }

简写:当流程控制中只有一行代码的时候,可以省略大括号

  1. 例:
  2. $price = 500;
  3. if ($price >= 500) echo $price * 0.8;
  • 单分支模板语法

if(条件) : 执行代码 endif[就是把初始大括号用冒号代替,结束大括号用指定关键字代替]

  1. // 模板语法
  2. 例:
  3. $price = 500;
  4. if ($price >= 500) :
  5. // 价格大于等于500打九折
  6. echo $price * 0.9;
  7. endif;
  8. // 一行简写
  9. if ($price >= 500) : echo $price * 0.5;endif;
  • 双分支结构

if(条件) { true执行代码 } else { false执行代码 }

  1. 例:
  2. $price = 300;
  3. if ($price >= 300) {
  4. // 当价格大于等于300是走这个区间打九折
  5. $payment = $price * 0.9;
  6. } else {
  7. // 当价格不满足表达式价格小于300时走这个区间,原价格
  8. $payment = $price;
  9. }
  10. // 打印最后结账价格
  11. var_dump($payment);
  • 双分支模板语法

if(条件) : true执行代码 else : false执行代码 endif

注意:else前面的花括号直接去掉没有东西代替

  1. 例:
  2. $price = 300
  3. if ($price >= 300) :
  4. $payment = $price * 0.9;
  5. else :
  6. $payment = $price;
  7. endif;
  8. var_dump($payment);
  • 多分支结构

多分支:if(条件)else { 执行代码 } elsef(条件){执行代码} else { 默认值 }

注意:这里的elseif根据需求来写上面两个只是例子

  1. 例:
  2. $price = 5000;
  3. if ($price > 1000 && $price < 2000) {
  4. $payment = $price * 0.9;
  5. } elseif($price > 2000 && $price < 3000) {
  6. $payment = $price * 0.7;
  7. } elseif ($price > 3000 && $price < 4000) {
  8. $payment = $price * 0.6;
  9. } elseif($price>4000 && $price <= 5000) {
  10. $payment = $price * 0.5;
  11. }else {
  12. // 默认值(当所有条件都不符合时)
  13. $payment = $price;
  14. }
  15. echo '实付价钱'.$payment;
  • 多分支模板语法

if(条件):执行代码; elseif(条件):执行代码;else:默认值;endif

  1. 例:
  2. $price = 3000;
  3. // 模板语法
  4. if ($price > 1000 && $price < 2000) :
  5. $payment = $price * 0.9;
  6. elseif($price > 2000 && $price < 3000) :
  7. $payment = $price * 0.7;
  8. elseif ($price > 3000 && $price < 4000) :
  9. $payment = $price * 0.6;
  10. elseif($price>4000 && $price <= 5000) :
  11. $payment = $price * 0.5;
  12. else :
  13. // 默认值(当所有条件都不符合时)
  14. $payment = $price;
  15. endif;
  16. echo '实付价钱'.$payment;
  • switch多分支[简化多分支]
  1. switch (条件) {
  2. case 表达式:
  3. 执行代码
  4. break;
  5. default:
  6. 执行代码
  7. break;
  8. }
  1. 例:
  2. $discount = 0.7;// 折扣
  3. $price = 6000; // 价钱
  4. switch ($discount) {
  5. case 0.7:
  6. $payment = $price * $discount;
  7. break;
  8. case 0.8:
  9. $payment = $price * $discount;
  10. break;
  11. case 0.9:
  12. $payment = $price * $discount;
  13. break;
  14. default:
  15. $payment = $price;
  16. break;
  17. }
  18. echo '实际结账啊'.$payment;
  • switch模板语法
  1. // 模板语法
  2. switch (条件) :
  3. case 表达式:
  4. 执行代码
  5. break;
  6. default:
  7. 执行代码
  8. break;
  9. endswitch;
  1. 例:
  2. $discount = 0.7;// 折扣
  3. $price = 5000; // 价钱
  4. switch ($discount) :
  5. case 0.7:
  6. $payment = $price * $discount;
  7. break;
  8. case 0.8:
  9. $payment = $price * $discount;
  10. break;
  11. case 0.9:
  12. $payment = $price * $discount;
  13. break;
  14. default:
  15. $payment = $price;
  16. break;
  17. endswitch;
  18. echo '实际结账啊'.$payment;

php循环

  • while循环

// while循环(入口循环:入口判断) while (条件) { 需要执行的代码 }

current($cities); // 输出数组中的当前元素

next($cities); // 指针下移

reset($cities);数组指针复位重新指向第一个

  1. 例:
  2. $cities = ['海淀', '丰台', '朝阳', '大兴', '昌平'];
  3. echo current($cities); // 输出数组中的当前元素 "海淀"
  4. next($cities); // 指针下移
  5. echo current($cities); // 输出丰台 上面指针下移所以输出丰台
  6. while ($city = current($cities)) {
  7. echo $city, '<br>';
  8. // 前移指针
  9. next($cities);
  10. }
  11. // 输出结果依次输出,海淀,丰台,朝阳,大兴,昌平
  • while模板语法

while(条件): 执行代码 endwhile

  1. 例:
  2. $cities = ['海淀', '丰台', '朝阳', '大兴', '昌平'];
  3. while ($city = current($cities)) :
  4. echo $city, '<br>';
  5. // 前移指针
  6. next($cities);
  7. endwhile;
  • do {执行代码} while (条件); 没有模板语法

do {执行代码} while (条件);判断型循环:出口判断 无论条件成不成立先执行一次

  1. 例:
  2. $cities = ['海淀', '丰台', '朝阳', '大兴', '昌平'];
  3. do {
  4. echo $city;
  5. next($cities);
  6. } while ($city = current($cities));
  7. // 输出结果丰台,朝阳,大兴,昌平因为在判断条件前限制性了一次数组指针下移
  • for循环

for (循环变量的初始化; 循环条件; 更新循环条件){ 执行代码 }

count(变量名); 数数,数数组中的元素个数

  1. 例:
  2. 这里$i的起始值是数组中元素的下标值 [下标值是从0开始的]
  3. for ($i=0; $i < count($cities) ; $i++) {
  4. var_dump($cities[$i]); echo '<br>';
  5. }
  • for循环模板语法

for (循环变量的初始化; 循环条件; 更新循环条件): 执行代码 endfor

  1. 例:
  2. for ($i=0; $i < count($cities) ; $i++) :
  3. var_dump($cities[$i]); echo '<br>';
  4. endfor;

模板语法在模板中的应用

  1. // 数据表查询结果通常是一个二维数组,用二维数组来模拟
  2. $users = [
  3. ['id'=>1, 'name'=>'zhu', 'grade'=> 60],
  4. ['id'=>2, 'name'=>'admin', 'grade'=> 50],
  5. ['id'=>3, 'name'=>'peter', 'grade'=> 20],
  6. ];
  7. ?>
  8. <!DOCTYPE html>
  9. <html>
  10. <head>
  11. <meta charset='utf-8'>
  12. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  13. <title><?php echo '这是title' ?></title>
  14. </head>
  15. <body>
  16. <table border='1'>
  17. <?php for($i=0;$i<count($users);$i++) : ?>
  18. <tr>
  19. <td><?php echo $users[$i]['id']?></td>
  20. <td><?php echo $users[$i]['name']?></td>
  21. <td><?php echo $users[$i]['grade']?></td>
  22. </tr>
  23. <?php endfor; ?>
  24. </table>
  25. </body>
  26. </html>

输出结果:

Correcting teacher:GuanhuiGuanhui

Correction status:qualified

Teacher's comments:代码写的挺好!文章整体有点乱,bt_code不要乱用!
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post