PHP - If…Else 语句



实现条件逻辑的能力是任何编程语言(包括 PHP)的基本要求。PHP 有三个关键字(也称为语言结构):ifelseif 和 else,用于根据不同的条件做出决策。

if 关键字是代码片段的条件执行的基本构造。通常,if 关键字与 else 关键字结合使用,尽管它并不总是强制性的。

如果要在条件为 true 时执行一些代码,如果 sme 条件为 false,则执行另一个代码,则使用 “if....else“语句。

语法

PHP 中 if 语句的用法和语法与 C 语言类似。这是 PHP 中 if 语句的语法 -


if (expression)
   如果表达式为True,则要执行的代码;
else
   如果表达式为false,则执行的代码;

if 语句后面始终跟着一个布尔表达式。

  • 如果布尔表达式的计算结果为 true,PHP 将执行布尔表达式后面的语句。
  • 如果布尔表达式的计算结果为 false,则忽略该语句。
  • 如果算法需要在表达式为 false 时执行另一个语句,则将其写入 else 关键字之后。

例子

下面是一个简单的 PHP 代码,演示了 if else 语句的用法。有两个变量 $a$b。该代码标识了其中哪一个更大。


<?php
   $a=10;
   $b=20;
   if ($a > $b)
      echo "a比b大";
   else
      echo "a不大于b";
?>

运行上述代码时,它会显示以下输出 -

a不大于b

交换 “a” 和 “b” 的值,然后再次运行。现在,您将获得以下输出 -

a比b大

例子

如果当前日期是星期五,以下示例将输出 “有一个愉快的周末!”,否则将输出 “祝您今天一切都好!” −


<?php
   $d = date("D");

   if ($d == "Fri")
      echo "有一个愉快的周末!"; 
   else
      echo "祝您今天一切都好!"; 
?>

它将产生以下输出 -

有一个愉快的周末!

PHP 使用 endif

PHP 代码通常与 HTML 脚本混合使用。我们可以在 if 部分以及 PHP 代码中的 else 部分插入 HTML 代码。PHP 为 if 和 else 语句提供了另一种语法。将左大括号改为冒号 (:),将右大括号改为 endif;,以便可以将 HTML 块添加到 if 和 else 部分。


<?php
   $d = date("D");

   if ($d == "Fri"): ?>
      <h2>Have a nice weekend!</h2>

   <?php else: ?>
      <h2>Have a nice day!</h2>
<?php endif ?>

确保上述脚本位于 PHP 服务器的文档根目录中。访问 URL http://localhost/hello.php。如果当前日期不是星期五,则浏览器中应显示以下输出 -

Have a nice day!

PHP 使用 elseif

如果要在满足多个条件之一时执行某些代码,请使用 elseif 语句。PHP 中的 elseif 语言结构是 if 和 else 的组合。

  • 与 else 类似,它指定在原始 if 表达式的计算结果为 false 时要执行的替代语句。
  • 但是,与 else 不同的是,仅当 elseif 条件表达式的计算结果为 true 时,它才会执行该替代表达式。

if (expr1)
   如果expr1为True,则要执行的代码;
elseif (expr2)
   如果expr2为True,则要执行的代码;
else
   如果expr2为false,则执行的代码;

让我们修改上面的代码,以便在星期日、星期五和其他日期显示不同的消息。


<?php
   $d = date("D");
   if ($d == "Fri")
      echo "<h3>Have a nice weekend!</h3>";

   elseif ($d == "Sun")
      echo "<h3>Have a nice Sunday!</h3>"; 

   else
      echo "<h3>Have a nice day!</h3>"; 
?>

在星期日,浏览器应显示以下输出 -

Have a nice Sunday!

例子

这是另一个显示 if-elselif-else 语句用法的示例 -


<?php
   $x=13;
   if ($x%2==0) {
      if ($x%3==0) 
         echo "<h3>$x 可被2和3整除</h3>";
      else
         echo "<h3>$x 可被2整除,但不能被3整除</h3>";
   }

   elseif ($x%3==0)
      echo "<h3>$x 可被3整除,但不能被2整除</h3>"; 

   else
      echo "<h3>$x 不能被3整除,也不能被2整除</h3>"; 
?>

上面的代码还使用了 nestedif 语句。

对于 x 的值为 13、12 和 10,输出将如下所示 -

13不能被3整除,也不能被2整除
12可以被2和3整除
10可以被2整除,但不能被3整除