在 PHP 脚本中,任何代码都是由一系列语句组成的,其中,if 语句和 else 语句是 PHP 语言中最重要的特性之一。if 语句允许根据条件执行特定的代码块;而 else 语句延伸了 if 语句,可以在 if 语句中的表达式的值为 false 时执行语句。
一、if语句
PHP 的 if 结构和 C 语言相似:
<?php if (expr) statement ?>
expr 会根据其布尔值进行求值。如果 expr 的值为 true,PHP 将执行 statement;如果值为 false,则忽略 statement。有关哪些值被视为 false 的更多信息参见《PHP Boolean 布尔类型》。
如果 $a 大于 $b,则以下例子将显示 a is bigger than b:
<?php if ($a > $b) echo "a is bigger than b"; ?>
在需要按照条件执行多条语句的情况下,不必为每条语句都添加一个 if 子句,可以将这些语句放入一个语句组中,然后根据条件来执行或忽略这个语句组。例如:如果 $a 大于 $b,以下代码将显示 a is bigger than b 并且将 $a 的值赋给 $b:
<?php if ($a > $b) { echo "a is bigger than b"; $b = $a; } ?>
if 语句可以无限层地嵌套在其他 if 语句中,使程序可以根据不同条件灵活地执行不同的代码块。这种嵌套结构为程序提供了充分的弹性,实现在不同条件下执行相应的操作。
二、else语句
在编程中,经常需要在满足某个条件时执行一条语句,而在不满足该条件时执行其他语句。这正是 else 的功能所在。else 扩展了 if 语句,可以在 if 语句中的表达式的值为 false 时执行相应的语句。通过使用 else,我们可以更加灵活地控制程序的执行流程。
例如以下代码在 $a 大于 $b 时显示 a is bigger than b,反之则显示 a is NOT bigger than b:
<?php if ($a > $b) { echo "a is greater than b"; } else { echo "a is NOT greater than b"; } ?>
else 语句仅在 if 以及 elseif 语句中的表达式的值为 false 时执行,如果 if 或 elseif 语句中的表达式为 true,则 else 语句将不会被执行。
悬挂的else
在多层嵌套的 if-else 语句中,else 总是与最近的 if 进行关联:
<?php $a = false; $b = true; if ($a) if ($b) echo "b"; else echo "c"; ?>
虽然存在缩进,但是 else 还是与 if ($b) 进行关联。因此,以上示例不会产生任何输出。尽管可以依赖此特性,但推荐使用花括号来避免潜在的歧义问题。