PHP条件控制语句

在软件开发过程中,代码执行的流程控制是非常重要的一项工作,传统的流程控制语句包括条件语句、选择语句和循环语句,本节我们就先来看看PHP中的条件控制语句。

if语句

和大多数编程语言一样,在PHP中的条件控制语句同样使用if关键字,并且使用方法也是与C风格相似的,如:

if(<条件>)  
{  
    <语句块>  
}

如果<条件>成立(为true时)则执行<语句块>,如果条件不成立(为false)时,则继续执行“}”后面的语句,如下面的语句,其功能是判断一个整数是不是偶数。

$num = 8;  
if($num%2==0)  
{  
    echo "$num","是一个偶数";  
}

此代码将显示“8 是一个偶数”。

如果语句块只有一条语句,就像上面的代码时,我们可以省略{和},如:

$num = 8;  
if($num%2==0)  
    echo "$num","是一个偶数";

或者,你还可以将它们放在一行,如:

if(num%2==0) echo "num","是一个偶数";

if-else语句

前面的if语句的示例中,当条件成立时会显示一条信息,但条件不成立时呢?很多时候,我们必须对条件不成立时的情况作出相应的处理,此时,可以使用if-else语句结构,其基本使用方法如下:

if(<条件>)  
{  
    <语句块1>  
}  
else  
{  
    <语句块2>  
}

当条件成立时执行<语句块1>,条件不成立时执行<语句块2>。如下面的代码。

$num = 9;  
if($num%2==0)  
{  
    echo $num,'是一个偶数';  
}  
else  
{  
    echo $num,'不是一个偶数';  
}

代码会显示“9 不是一个偶数”。

if-elseif语句

当我们的代码逻辑中包含两个或更多的条件时,可以使用if-elseif语句,它的基本格式如下:

if(<条件1>)  
{  
    <语句块1>  
}  
elseif(<条件2>)  
{  
    <语句块2>  
}  
elseif(<条件n>)  
{  
    <语句块n>  
}

如下面的代码,我们将根据分数进行评级。

$score = 88;  
if($score>=90){  
    echo '优秀';  
}elseif($score>=80 && $score<90){  
    echo '好';  
}elseif($score>=70 && $score<80){  
    echo '良';  
}elseif($score>=60 && $score<70){  
    echo '及格';  
}else{  
    echo '不及格';  
}

代码会显示“好”。请注意代码的最后,我们添加了else语句,在实际应用中,可以根据需要选择是否在if-elseif语句结构中使用else语句,但应注意,else语句只能在条件语句结构的最后,并且只能出现一次,这和if-else语句中的使用是一致的。

复杂条件与嵌套

在if-elseif的示例中,我们在条件中使用了与运算符(&&),也就是两个条件都成立时,整个条件表达式的结果才为true,在实际应用中,我们还可能需要写更复杂的判断条件,此时,应注意与运算(&&)、或运算(||)和非运算(!),以及各比较运算符的综合应用,使用()将条件进行有效的组合会让代码可读性更强,同时也会更安全,这样,你就不会因为忘了运算符优先级而导致运算顺序错误,这也是我们在本书中没有提及运算符优先级的原因。

如下面的代码,功能是判断一个年份是否为闰年。

$year = 2008;  
if(($year%100!=0 && $year%4==0) ||  
    ($year%100==0 && $year%400==0))  
{  
    echo $year,'年是闰年';  
}  
else  
{  
    echo $year,'年不是闰年';  
}

代码会显示“2008 年是闰年”。条件中的执行逻辑有两种情况,如果有其中一种成立,指定的年份就是闰年,第一种情况是年份不能被100整除时,如果能被4整除,则年份是闰年;第二种情况是年份能被100整除,则必须也能被400整除才是闰年。

如果你觉得前面的条件比较复杂,我们还可以将其分解,使用嵌套条件语句来完成,如下面的代码。

$year = 2008;  
$isLeapYear = false;  
if($year%100!=0)  
{  
    if($year%4==0)   
    {  
        $isLeapYear = true;  
    }  
}else  
{  
    if($year%400==0)  
    {  
        $isLeapYear = true;  
    }  
}  
if($isLeapYear)  
{  
    echo $year,'年是闰年';  
}  
else  
{  
    echo $year,'年不是闰年';  
}

虽然代码长了很多,但可以帮助我们理解条件语句的嵌套使用。

此外,请注意$isLeapYear变量的使用,如果不使用此变量,相信代码的结构会更复杂,你可以自己动手试一试。布尔型变量的这种使用方法,在复杂的条件判断或数据检查操作中是很常见的。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程