「PHP系列」If...Else语句switch语句
作者:mmseoamin日期:2024-04-30

文章目录

  • 一、If...Else语句
    • 1. 基本语法
    • 2. 带有 elseif 的语法
    • 3. 示例
      • 示例 1:基本 if...else 结构
      • 示例 2:使用 elseif
      • 示例 3:嵌套 if...else 结构
      • 4. 注意事项
      • 二、switch语句
        • 1. 基本语法
        • 2. 示例
          • 示例 1:基本 switch 结构
          • 示例 2:没有 break 的穿透现象
          • 示例 3:使用 switch 语句处理范围
          • 3. 注意事项
          • 三、相关链接

            一、If…Else语句

            PHP 中的 if...else 语句是用于根据条件执行不同代码块的强大工具。这种结构允许你基于某个条件(通常是布尔表达式)的结果来决定执行哪一部分代码。下面是对 if...else 语句的详细解释以及一些示例

            1. 基本语法

            if (condition) {
                // 当 condition 为真时执行的代码块
            } else {
                // 当 condition 为假时执行的代码块
            }
            

            2. 带有 elseif 的语法

            if (condition1) {
                // 当 condition1 为真时执行的代码块
            } elseif (condition2) {
                // 当 condition1 为假,但 condition2 为真时执行的代码块
            } else {
                // 当 condition1 和 condition2 都为假时执行的代码块
            }
            

            3. 示例

            示例 1:基本 if…else 结构

            $number = 10;
            if ($number > 5) {
                echo "数字大于5";
            } else {
                echo "数字小于或等于5";
            }
            

            在这个例子中,如果 $number 大于 5,将输出 “数字大于5”,否则输出 “数字小于或等于5”。

            示例 2:使用 elseif

            $day = "Wednesday";
            if ($day == "Monday") {
                echo "今天是星期一";
            } elseif ($day == "Tuesday") {
                echo "今天是星期二";
            } elseif ($day == "Wednesday") {
                echo "今天是星期三";
            } else {
                echo "今天是其他日子";
            }
            

            在这个例子中,我们根据 $day 变量的值输出不同的星期几。如果 $day 是 “Wednesday”,将输出 “今天是星期三”。

            示例 3:嵌套 if…else 结构

            $age = 25;
            $isStudent = true;
            if ($age >= 18) {
                echo "你已经是成年人了。";
                
                if ($isStudent) {
                    echo "你还是一个学生。";
                } else {
                    echo "你已经不是学生了。";
                }
            } else {
                echo "你还没有成年。";
            }
            

            在这个例子中,我们首先检查 $age 是否大于等于 18。如果是,我们输出 “你已经是成年人了。”,然后进一步检查 $isStudent 是否为真。根据 $isStudent 的值,我们输出相应的信息。

            4. 注意事项

            • 条件表达式 (condition) 必须返回布尔值 true 或 false。
            • 如果条件表达式的结果不是布尔值,PHP 会尝试将其转换为布尔值。例如,非零数字、非空字符串和非 null 对象通常被视为 true,而零、空字符串和 null 被视为 false。
            • elseif 和 else if 在 PHP 中是等价的,但为了一致性和可读性,通常建议使用 elseif。
            • 你可以根据需要嵌套多个 if...else 结构,但过度嵌套会使代码难以理解和维护。尽量保持代码结构清晰和简洁。

              二、switch语句

              在 PHP 中,switch 语句用于根据表达式的值执行不同的代码块。它提供了一种更清晰、更简洁的方式来处理多个条件。switch 语句会将表达式的值与每个 case 标签的值进行比较,如果匹配成功,则执行相应的代码块。

              1. 基本语法

              switch (expression) {
                  case value1:
                      // 当 expression 等于 value1 时执行的代码块
                      break;
                  case value2:
                      // 当 expression 等于 value2 时执行的代码块
                      break;
                  default:
                      // 当 expression 不等于任何 case 值时执行的代码块
              }
              

              在 switch 语句中,break 关键字用于终止当前 case 的执行,防止代码继续执行下一个 case。如果省略了 break,则会发生“穿透”(fall-through)现象,即执行完当前 case 的代码后,会继续执行下一个 case 的代码,直到遇到 break 或 switch 语句结束。

              2. 示例

              示例 1:基本 switch 结构

              $day = "Monday";
              switch ($day) {
                  case "Monday":
                      echo "今天是星期一";
                      break;
                  case "Tuesday":
                      echo "今天是星期二";
                      break;
                  case "Wednesday":
                      echo "今天是星期三";
                      break;
                  default:
                      echo "今天是其他日子";
              }
              

              在这个例子中,根据 $day 变量的值,输出不同的星期几。

              示例 2:没有 break 的穿透现象

              $number = 2;
              switch ($number) {
                  case 1:
                      echo "数字是 1";
                      // 注意:这里故意省略了 break
                  case 2:
                      echo "数字是 2";
                      break;
                  case 3:
                      echo "数字是 3";
                      break;
                  default:
                      echo "数字不是 1、2 或 3";
              }
              

              在这个例子中,当 $number 等于 2 时,由于第一个 case 1 后面没有 break,所以不仅会输出 “数字是 2”,还会输出 “数字是 1”。

              示例 3:使用 switch 语句处理范围

              虽然 switch 语句通常用于处理离散的值,但你也可以通过一些技巧来处理范围。例如,使用多个 case 语句来表示范围:

              $score = 85;
              switch (true) {
                  case $score >= 90:
                      echo "优秀";
                      break;
                  case $score >= 80:
                      echo "良好";
                      break;
                  case $score >= 70:
                      echo "中等";
                      break;
                  case $score >= 60:
                      echo "及格";
                      break;
                  default:
                      echo "不及格";
              }
              

              在这个例子中,我们使用了 switch (true),并利用 case 后面的表达式来判断分数范围。注意,由于每个 case 后面没有 break,代码会穿透到第一个匹配的条件为止。这实际上是一种模拟 switch 语句处理范围的方法。

              3. 注意事项

              • switch 语句中的 expression 必须是一个表达式,它返回一个可以与 case 标签进行比较的值。
              • case 标签后面的值可以是任何数据类型,但 expression 和 case 标签的数据类型必须能够进行比较。
              • 如果没有与 expression 相匹配的 case 标签,并且没有 default 语句,则 switch 语句不会执行任何操作。
              • 虽然可以通过穿透现象来处理多个 case,但这通常不是最佳实践,因为它可能导致代码难以理解和维护。使用 break 可以避免这种情况。

                通过使用 switch 语句,你可以更清晰地组织代码,并根据不同的条件执行相应的操作。

                三、相关链接

                1. php官网
                2. php_Github
                3. PHP实现Token
                4. 「PHP系列」PHP简介与起步
                5. 「PHP系列」PHP语法介绍
                6. 「PHP系列」PHP变量
                7. 「PHP系列」PHP echo/print语句、数据类型详解
                8. 「PHP系列」PHP 常量/字符串、类型比较
                9. 「PHP系列」PHP 运算符详解