关键词搜索

源码搜索 ×
×

《PHP 7从零基础到项目实战》学习笔记2——流程控制语句

发布2020-05-30浏览404次

详情内容

参照《PHP 7从零基础到项目实战》的案例练习。

1.条件控制语句

条件控制语句有两个,分别是:if和switch。

1.1 if条件控制语句

使用格式:

<? php
if(expr) {
	statement_1
} else {
	statement_2
}
?>

    示例:

    <?php
    // 单条件判断
    if(2 > 1) {
        echo 'right';
    } else {
        echo 'incorrect';
    }
    echo "\n";
    // 输出:right
    
    // 多条件判断
    $a = 22;
    if($a < 5){
        echo '$a is less than 5';
    } else if($a >= 5 && $a < 10) {
        echo '$a is greater than or equal 5, but less than 10';
    } else if($a >= 10 && $a < 20) {
        echo '$a is greater than or equal 10, but less than 20';
    } else {
        echo '$a is greater than or equal 20';
    }
    // $a is greater than or equal 20
    ?>
    
      8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    1.2switch分支语句

    <?php
    // 单条件判断
    if(2 > 1) {
        echo 'right';
    } else {
        echo 'incorrect';
    }
    echo "\n";
    // 输出:right
    
    // 多条件判断
    $a = 22;
    if($a < 5){
        echo '$a is less than 5';
    } else if($a >= 5 && $a < 10) {
        echo '$a is greater than or equal 5, but less than 10';
    } else if($a >= 10 && $a < 20) {
        echo '$a is greater than or equal 10, but less than 20';
    } else {
        echo '$a is greater than or equal 20';
    }
    // $a is greater than or equal 20
    
    echo "\n";
    // switch分支语句
    $b = 3;
    switch ($b) {
        case 1:
            echo "\$a is 1";
            break;
        case 2:
            echo "\$a is 2";
            break;
        case 3:
            echo "\$a is 3";
            break;
        case 4:
            echo "\$a is 4";
            break;
        default:
            echo "\$a is not equal 1,2,3,4";
            break;
    }
    // $a is 3
    ?>
    
    
      8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    2.循环控制语句

    循环控制语句是在满足一定条件的情况下反复执行某一操作。PHP种提供4种循环控制语句:while、do while、for和foreach。

    2.1while

    while循环语句语法的格式:

    while(expr) {
    	statement
    }
    
    • 1
    • 2
    • 3

    当expr的值为true时,执行嵌套的statement语句,expr表达式的值在每次开始循环时检查,所以即使这个值在循环语句中改变了,语句也不会停止执行,直到本次循环结束。如果while表达式的值一开始就是false,那么循环语句一次也不会执行。

    <?php
    // while
    $a = 1;
    while($a < 10) {
        $a++;
    }
    echo $a; // 10
    ?>
    
      8

    2.2do while

    <?php
    // do while
    $i = 0;
    do {
        $i++;
        echo $i;
    } while($i < 10);
    // 12345678910
    ?>
    
      8
    • 9

    2.3for

    for循环语法的结构:

    for (expr1; expr2; expr3) {
    	statement
    }
    
    • 1
    • 2
    • 3
    Created with Raphaël 2.2.0 start expr1 statement expr3 expr2为假? end yes no

    说明:
    执行表达式expr1=>执行statement中的代码块=>执行表达式expr3
    =>判断expr2条件真假(如果为真,继续执行statement中的代码块=>循环执行expr3=>判断expr2真假;如果expr2为false,终止循环)。

    <?php
    // for
    for($i = 1;$i < 10; $i++) {
        echo $i;
    }
    // 123456789
    ?>
    

      2.4foreach

      <?php
      // foreach
      $array = [0, 1, 2, 3];
      foreach ($array as $val) {
          echo "值是:".$val;
          echo "\n";
      }
      // 值是:0
      // 值是:1
      // 值是:2
      // 值是:3
      
      foreach($array as $key => $value) {
          echo "key:".$key." value:".$value;
          echo "\n";
      }
      // key:0 value:0
      // key:1 value:1
      // key:2 value:2
      // key:3 value:3
      
      /**
       * 在php5中,当foreach开始循环执行时,每次数组内部指针
       * 都会自动向后移动一个单元,但php7中却不是这样。
       */
      $array = [0, 1, 2];
      foreach ($array as $value) {
          var_dump(current($array));
      }
      // int(0)
      // int(0)
      // int(0)
      
      /**
       * 在php7中,按照值进行循环时,foreach是对数组的复制操作,
       * 在循环过程中对数组的修改不会影响环行为,但在php5中会有影响
       */
      $array = [0, 1, 2];
      foreach ($array as $value) {
          var_dump($value);
          unset($array[1]);
      }
      // int(0)
      // int(1)
      // int(2)
      
      /**
       * 在php 7中按照引用循环时对数组的修改会影响循环,而在php 5中则不会改变
       */
      $array2 = [0];
      foreach ($array2 as $val) {
          var_dump($val);
          $array2[1] = 1;
          $array2[2] = 2;
      // int(0)
      // int(1)
      // int(2)
      }
      ?>
      
        8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42
      • 43
      • 44
      • 45
      • 46
      • 47
      • 48
      • 49
      • 50
      • 51
      • 52
      • 53
      • 54
      • 55
      • 56
      • 57
      • 58
      • 59

      3.跳转语句

      跳转语句包含:break语句、continue语句和goto语句。

      3.1break

      <?php
      /**
       * break语句用于终止本次循环
       */
      for($i = 0; $i < 10; $i++) {
          if($i == 3) {
              break;
          }
          echo $i; // 012
      }
      ?>
      
        8
      • 9
      • 10
      • 11

      3.2continue

      <?php
      /**
       * continue语句的作用是跳出本次循环,接着执行下一次循环
       */
      for($i = 0; $i < 10; $i++) {
          if($i == 3) {
              continue;
          }
          echo $i; // 012456789
      }
      ?>
      
        8
      • 9
      • 10
      • 11

      3.3goto

      <?php
      /**
       * goto语句可以用来跳转到程序中的另一个位置。该目标位置使用目标名称加冒号
       * 来标记,而跳转指令是goto之后接上目标位置的标记。
       * php对goto语句有一定限制,即目标位置只能位于同一个文件和作用域,
       * 即无法跳出一个函数或类方法,也无法跳入另一个函数、其他循环或switch结构中。
       * 可跳出循环或switch,goto语句常用于代替多层的break语句。
       */
      goto a;
      echo 'Foo';
      a:
      echo 'Bar';
      // Bar
      
      for($i = 0; $i < 10; $i++) {
          if($i == 3) {
              goto b;
          }
          echo $i;
      }
      b:
      echo "跳出循环";
      
      // 012跳出循环
      ?>
      
        8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25

      4.包含语句

      包含语句用于在php文件中引入另一个文件,这样有利于代码重用。PHP中共有4个包含外部文件的方法,分别是:include、include_once、require、require_once。

      4.1include语句

      <?php
      /**
       * 1.include语句
       * include语句包含并运行指定文件。
       * 寻找被包含文件的顺序:
       * 首先按参数给出的路径寻找
       * =>如果没有给出目录(文件名),则按照include_path(在配置文件中可查看include_path)指定的目录寻找
       * =>如果在include_path下没找到该文件,那么include最后会在调用脚本文件所在的目录和当前工作目录下寻找
       * =>如果最后仍未找到文件,include结构将会发出警告。
       */
      /**
       * 当一个文件被包含时,其中所包含的代码继承了include所在行的变量范围。
       * 从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。
       * 如果include出现于调用文件中的一个函数中,那么被调用的文件中所包含的所有代码
       * 将表现得如同它们是在该函数内部定义的一样。
       */
      include 'a.php';
      echo '111';
      echo $color;
      // 111green
      
      include 'b.php';
      echo $colorb."\n";
      aa();
      function aa() {
          global $colorb;
          echo $colorb;
      }
      // 3
      // blue
      // blue
      ?>
      
        8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32

      a.php:

      <?php
      $color = "green";
      ?>
      
      • 1
      • 2
      • 3

      4.2include_once语句

      <?php
      /**
       * 2.include_once语句
       * include_once语句和include语句类似,唯一的区别是:
       * 如果该文件已被包含,则不会再次包含。
       * include_once可用于在脚本执行期间同一个文件可能被包含多次的情况下,
       * 确保它只被包含一次,以避免函数重定义、变量重新赋值等问题。
       */
      include_once 'b.php';
      include_once 'b.php';
      // 3
      ?>
      
        8
      • 9
      • 10
      • 11
      • 12

      b.php:

      <?php
      $colorb = "blue";
      echo __LINE__."\n";
      ?>
      
      • 1
      • 2
      • 3
      • 4

      4.3require语句

      <?php
      /**
       * require语句和include语句几乎完全一样,不同的是:
       * 当被包含文件不存在时,require语句会发出一个Fatal error错误且程序终止执行,
       * include则会发出一个Warning警告但程序会继续执行
       */
      require 'a.php';
      echo $color;
      // green
      ?>
      
        8
      • 9
      • 10

      4.4require_once语句

      <?php
      /**
       * require_once语句和require语句完全相同,
       * 唯一的区别是:
       * PHP会检查该文件是否已被包含过,如果是则不会再次包含。
       */
      require_once 'b.php';
      require_once 'b.php';
      // 3
      ?>
      
        8
      • 9
      • 10

      往期文章:

      相关技术文章

      点击QQ咨询
      开通会员
      返回顶部
      ×
      微信扫码支付
      微信扫码支付
      确定支付下载
      请使用微信描二维码支付
      ×

      提示信息

      ×

      选择支付方式

      • 微信支付
      • 支付宝付款
      确定支付下载