Blogger Information
Blog 24
fans 1
comment 0
visits 20845
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php流程控制基础知识
知行合一
Original
661 people have browsed it

运算符

比较运算符

  • 比较运算符,返回布尔值。
  • ==类型不同,值相同,也返回true. ===必须值和类型相同才返回true
    1. var_dump(10<20);
    2. var_dump(100=='100');
    3. var_dump(100===100);
    4. var_dump(100==='100');

    太空船运算符

    PHP7以上版本支持
    1. var_dump(100<=>50);
    2. var_dump(100<=>100);
    3. var_dump(100<=>200);

    逻辑运算符

  • &&两边都是true返回true
  • ||用一个为true就返回true
    1. var_dump((10<20)&&(100<200));
    2. var_dump((10<5)&&(100<200));
    3. var_dump((10<5)||(100<200));

    短路求值

    1. $username='zhangsan';
    2. //如果第一个值为flase,就不会去执行第二个值了。
    3. if (isset($username)&&$username=='admin')
    4. {
    5. echo '登陆成功';
    6. }
    7. else{
    8. echo '登录不成功';
    9. }

    三元运算符

    1. $price=1500;
    2. echo $price>1000?'太贵了':'太便宜了';
    3. //如果密码为空,默认为root
    4. $password='123';
    5. echo isset($password)?$password:'root';
    6. echo '<hr>';

    null合并运算符

    当变量不存在时显示??后面的内容
    echo $email??'10000@qq.com';

    分支结构

    单分支结构

    1. $amount=5500;
    2. $payment=$amount;
    3. if($amount>=5000){
    4. $payment=$amount*0.9;
    5. }
    6. echo '实际支付'.$payment.'<br>';
    7. // if($amount>=5000) $payment=$amount*0.9; 流程控制语句只有一行代码,可以这样简写,但不建议,没有可读性。
    8. //模板语法,干掉大括号,也可以像下面这样写。
    9. //第一个大括号用冒号:代替,第二个用特殊关键词代替。
    10. if($amount>=5000):
    11. $payment=$amount*0.9;
    12. endif;
    13. echo '单分支'.$payment.'<hr>';

    双分支

    1. $amount=6000;
    2. if($amount>=5000){
    3. $payment=$amount*0.9;
    4. }
    5. else{
    6. $payment=$amount;
    7. }
    8. echo $payment.'<br>';
    9. //改造下,改成模板语法
    10. $amount=10000;
    11. if($amount>=5000):
    12. $payment=$amount*0.9;
    13. else:
    14. $payment=$amount;
    15. endif;
    16. echo '双分支'.$payment.'<hr>';

    多分支

    1. $amount=2000;
    2. if($amount>=5000&&$amount<10000){
    3. $payment=$amount*0.9;
    4. }elseif($amount>=10000&&$amount<20000){
    5. $payment=$amount*0.8;
    6. }elseif($amount>=20000){
    7. $payment=$amount*0.7;
    8. }else{
    9. $payment=$amount;
    10. }
    11. echo $payment.'<br>';
    12. //模板语法改造如下
    13. $amount=22000;
    14. if($amount>=5000&&$amount<10000):
    15. $payment=$amount*0.9;
    16. elseif($amount>=10000&&$amount<20000):
    17. $payment=$amount*0.8;
    18. elseif($amount>=20000):
    19. $payment=$amount*0.7;
    20. else:
    21. $payment=$amount;
    22. endif;
    23. echo '多分支'.$payment.'<hr>';

    switch 简化分支

    1. $amount=22000;
    2. switch (true){ //true表示条件为真,进入循环 也可以用$amount. 变量有数据的话也会被认为成立,就进入下面的代码
    3. case ($amount>=5000&&$amount<10000): //不要括号也可以
    4. $payment=$amount*0.9;
    5. break;
    6. case $amount>=10000&&$amount<20000:
    7. $payment=$amount*0.8;
    8. break;
    9. case $amount>=20000:
    10. $payment=$amount*0.7;
    11. break;
    12. default:
    13. $payment=$amount;
    14. }
    15. echo 'switch分支区间判断'.$payment.'<br>';
    16. //switch 通常用在单值判断
    17. $discount=0.7;
    18. $amount=10000;
    19. switch ($discount){
    20. case 0.9:
    21. $payment=$amount*0.9;
    22. break;
    23. case 0.8:
    24. $payment=$amount*0.8;
    25. break;
    26. case 0.7:
    27. $payment=$amount*0.7;
    28. break;
    29. default:
    30. die('不支持的折扣率');//die() 函数输出一条消息,并退出当前脚本。该函数是 exit() 函数的别名。
    31. }
    32. echo 'switch分支单值判断'.$payment.'<br>';
    33. //模板语法
    34. $discount=0.8;
    35. $amount=10000;
    36. switch ($discount):
    37. case 0.9:
    38. $payment=$amount*0.9;
    39. break;
    40. case 0.8:
    41. $payment=$amount*0.8;
    42. break;
    43. case 0.7:
    44. $payment=$amount*0.7;
    45. break;
    46. default:
    47. die('不支持的折扣率');//die() 函数输出一条消息,并退出当前脚本。该函数是 exit() 函数的别名。
    48. endswitch;
    49. echo 'switch分支单值判断模板语法'.$payment.'<br>';

    循环

    while循环

    进行循环之前先进行判断 ,条件为真才执行循环体
    1. $cities=['北京','上海','广州','深圳','天津','重庆'];
    2. echo current($cities); //current() 函数返回数组中的当前元素的值。
    3. echo next($cities); //将内部指针指向数组中的下一个元素,并输出。
    4. echo '<font color=red>while循环开始</font>'.'<br>';
    5. while(current($cities)){
    6. echo current($cities).'<br>';
    7. next($cities);
    8. }
    9. echo'<hr>';
    10. reset($cities); //指针复位 指针回到第一条数据。
    11. while($city=current($cities)){ //将当前数组元素赋值给一个变量
    12. echo $city.'<br>';
    13. next($cities);
    14. }
    15. echo'<hr>';
    16. //模板语法
    17. reset($cities);
    18. while($city=current($cities)):
    19. echo $city.'<br>';
    20. next($cities);
    21. endwhile;

    出口判断型循环do while

    一般不使用。 没有对应的模板语法。
    1. echo '<font color=red>do while循环开始</font>'.'<br>';
    2. reset($cities);
    3. do{
    4. echo $city.'<br>';
    5. next($cities);
    6. }while($city=current($cities)); //因为第一次循环 $city没定义,所以第一项数据不会被输出。

    计数型循环 for循环

    1. echo '<font color=red>for循环开始</font>'.'<br>';
    2. count($cities); //count 返回数组中元素的数目:
    3. for($i=0;$i<count($cities);$i++)
    4. {
    5. //输出拦截
    6. if ($i>2) break; //break提前中止循环
    7. echo $cities[$i].'<br>';
    8. }
    9. echo '<hr>';
    10. //模板语法
    11. reset($cities);
    12. for($i=0;$i<count($cities);$i++):
    13. if ($i===2) continue; //continue中止当条,循环继续执行
    14. echo $cities[$i].'<br>';
    15. endfor;

    模板语法用表格输出二维数组

    1. <?php
    2. $user=[
    3. ['id'=>1,'username'=>'zhangsan','sex'=>'男'],
    4. ['id'=>2,'username'=>'lisi','sex'=>'女'],
    5. ['id'=>3,'username'=>'wangwu','sex'=>'男'],
    6. ]
    7. ?>
    8. <!DOCTYPE html>
    9. <html lang="en">
    10. <head>
    11. <meta charset="UTF-8">
    12. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    13. <title>Document</title>
    14. </head>
    15. <body>
    16. <?php
    17. echo '<table border=1>';
    18. for($i=0;$i<count($user);$i++)
    19. {
    20. echo '<tr><td>'.$user[$i]['id'].'</td><td>'.$user[$i]['username'].'</td><td>'.$user[$i]['sex'].'</td></tr>';
    21. }
    22. echo '</table>';
    23. ?>
    24. <!--模板语法来写-->
    25. <table border='1'>
    26. <?php for($i=0;$i<count($user);$i++): ?>
    27. <tr>
    28. <td><?php echo $user[$i]['id'];?></td>
    29. <td><?php echo $user[$i]['username']; ?></td>
    30. <td><?php echo $user[$i]['sex']; ?></td>
    31. </tr>
    32. <?PHP endfor; ?>
    33. </table>
    34. </body>
    35. </html>

    总结

    php流程控制知识相对比较简单,做好笔记。忘记时,就来看看,长久才会积累下来。好记性不如个烂笔头!
Correcting teacher:GuanhuiGuanhui

Correction status:qualified

Teacher's comments:写的还行!就是代码有点乱!
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