PHP允许我们基于某些类型的条件执行操作,这些条件可以是逻辑条件或比较条件。根据这些条件的结果,即TRUE或FALSE,将执行用户要求执行的操作。这就像是一条双路道路。如果你想要某事,就走这条路,否则就转向那条路。为了使用这个特性,PHP提供了四个条件语句:
if语句
if…else语句
if…elseif…else语句
switch语句
现在让我们详细看看每一个:
if语句:这个语句允许我们设置一个条件。当条件为TRUE时,将执行if子句中的代码块。
语法:
if (条件){
// 如果为TRUE,则执行此代码
}
示例:
<?php
$x = 12;
if ($x > 0) {
echo "数字是正数";
}
?>
输出:
数字是正数
if…else语句:我们了解到,如果条件成立,即TRUE,那么if内的代码块将被执行。但是如果条件不为TRUE,我们想执行一个动作怎么办?这就是else的作用。如果条件为TRUE,那么执行if块,否则执行else块。
语法:
<?php
if (条件) {
// 如果为TRUE,则执行此代码
}
else{
// 如果为FALSE,则执行此代码
}
示例:
<?php
$x = -12;
if ($x > 0) {
echo "数字是正数";
}
else{
echo "数字是负数";
}
?>
输出:
数字是负数
if…elseif…else语句:这允许我们使用多个if…else语句。在存在多个TRUE情况的情况下使用。
语法:
<?php
if (条件) {
// 如果为TRUE,则执行此代码
}
elseif {
// 如果为TRUE,则执行此代码
}
elseif {
// 如果为TRUE,则执行此代码
}
else {
// 如果为FALSE,则执行此代码
}
示例:
<?php
$x = "八月";
if ($x == "一月") {
echo "国庆节快乐";
}
elseif ($x == "八月") {
echo "独立日快乐!!!";
}
else{
echo "无内容可显示";
}
?>
输出:
独立日快乐!!!
switch语句:”switch”在不同的情况下执行,即它有各种匹配条件的情况,并相应地执行特定的情况块。它首先评估一个表达式,然后与每个情况的值进行比较。如果一个情况匹配,则执行相同的情况。要使用switch,我们需要熟悉两个不同的关键字,即break和default。
break语句用于停止自动控制流进入下一个情况,并从switch情况中退出。
default语句包含的代码会在没有一个情况匹配时执行。
语法:
<?php
switch(n) {
case 情况1:
如果n == 情况1,则执行的代码;
break;
case 情况2:
如果n == 情况2,则执行的代码;
break;
case 情况3:
如果n == 情况3,则执行的代码;
break;
case 情况4:
如果n == 情况4,则执行的代码;
break;
......
default:
如果n不等于任何情况,则执行的代码;
}
示例:
<?php
$n = "二月";
switch($n) {
case "一月":
echo "现在是一月";
break;
case "二月":
echo "现在是二月";
break;
case "三月":
echo "现在是三月";
break;
case "四月":
echo "现在是四月";
break;
case "五月":
echo "现在是五月";
break;
case "六月":
echo "现在是六月";
break;
case "七月":
echo "现在是七月";
break;
case "八月":
echo "现在是八月";
break;
case "九月":
echo "现在是九月";
break;
case "十月":
echo "现在是十月";
break;
case "十一月":
echo "现在是十一月";
break;
case "十二月":
echo "现在是十二月";
break;
default:
echo "不存在";
}
?>
输出:
现在是二月
三元运算符
除了所有这些条件语句之外,PHP还提供了一种写if…else的简便方法,称为三元运算符。该语句使用一个问号(?)和一个冒号(:),并使用三个操作数:要检查的条件,为TRUE时的结果以及为FALSE时的结果。
语法:
<?php
(条件) ? 如果为TRUE则执行此 : 否则执行此;
示例:
<?php
$x = -12;
if ($x > 0) {
echo "数字是正数 \n";
}
else {
echo "数字是负数 \n";
}
// 可以使用三元运算符将整个内容写在一行中
echo ($x > 0) ? '数字是正数' : '数字是负数';
?>
输出:
数字是负数
数字是负数