PHP流程控制结构之分出结构

流程控制对其它一样门户编程语言来说还是富有通用和普遍性的,是程序的重中之重片段。可以这么说,在另一样家程序设计语言中,都需要支持三种植为主构造:顺序结构、分支组织(选择结构要极结构)和巡回结构。对于顺序结构,主要是赋值语句和输入/输出语句等,即按照次序执行,这里没什么好说的。这里,笔者重点总结一下子组织及循环结构。

分层组织

旁组织是先后在履行过程遭到本需求原则来改变程序执行之逐一。即满足条件时便尽有一样讲述述块,反的则执行外一样描述述块。在先后中运用分支组织得以生出以下几种植样式:

  • 纯净条件分支组织
  • 双向条件分支组织
  • 大多为准分支组织
  • 巢状条件分支组织

纯净条件分支

if组织是纯条件分支组织,if语的主干格式是本着一个表达式进行测算,根据计算结果决定是否实施后的口舌。if末尾小括号被之“表达式”就是实施的准,条件返回的结果只能是布尔型值。其一般性是出于比较运算符或者逻辑运算符组成的表达式所计算的结果值,或是一些返布尔型的函数等。如果是传播其他项目的价,也会活动转换为布尔型的TRUEFALSE。如果表达式为TRUE,则履行代码块,否则不履。

Demo

<?php
    $x = 10;                            //定义一个整型变量$x,值为10
    $y = 20;                            //定义一个整型变量$y,值为20
    if ( $x < $y )  {                   //$x是小于$y的,所以执行下面语句块
        $t = $x ;                       //先将$x的值放到临时的变量$t中
        $x = $y ;                       //再将变量$y的值赋给变量$a
        $y = $t ;                       //再将临时变量$t中的值赋给变量$y
    }                                   //语句块结束的花括号
    var_dump($x > $y );                 //两个变量的值已经交换,输出true

    echo $x." ".$y;
?>

双向条件分支

双向条件分支好比if报告句被也足以涵盖else子句,其意思是要在满足某个条件时实施同一漫漫语句,而在未满足该法时实施外语句,这多亏else子句的功力。else延伸了if语句,可以在if告句被的表达式的价也FALSE时不时实施语句。值得注意的凡,else语句是if言的自句,必须跟if一齐行使,不能够独在。

Demo

<?php
    $x = 30;                                    
    $y = 20;                                    
    if( $x > $y ) {                             
        echo "变量\$x 大于变量 \$y <br>";     //判断的条件成立,此句会执行
    } else {                                
        echo "变量\$x 小于变量 \$y <br>";     //判断的条件不成立,此句会被执行
    }                                       
    echo "变量\$x和变量\$y比较完毕 ";            
?>

基本上向准分支

elseif子句是一流的几近为标准化分支,它延伸了if语句,elseif子句会根据不同之发表式值确定实施哪个语句块。在PHP中也得将elseif分手成稀单重要字else if来利用。其履行顺序是如表达式l为TRUE,则实施代码块1报告句;如果判断表达式2为TRUE,则履行代码块2语词;以此类推,判断第n单表达式为TRUE,则实施代码块n言;如果表达式的规格且未呢TRUE,则履行else子语中的代码块n+l言语,当然最终之else言辞为可以简单。

Demo

<?php
    $week = date("D"); //获取当前的星期值,如Mon、Tue、Wed等

    if ( $week == "Mon" ) {                 
        echo "星期一";
    } elseif ( $week == "Tue" ) {           
        echo "星期二";
    } elseif ( $week == "Wed" ) {           
        echo "星期三";
    } elseif ( $week == "Thu" ) {           
        echo "星期四";
    } elseif ( $week == "Fri" ) {           
        echo "星期五";
    } elseif ( $week == "Sat" ) {           
        echo "星期六";
    } elseif ( $week == "Sun" ) {           
        echo "星期日";
    }               
?>

switch语句和elseif诚如,也是一律栽多为准分支组织,但ifelseif话以布尔表达式或布尔值作为分支条件来拓展分层控制;而switch喻句子则用来测试一个表达式的值,并基于测试结果选择执行相应的分程序,从而实现分支控制。switch告知句子由一个挑表达式和多独case标签组成,case签后继一截取代码块。在行使switch谈时当小心以下几点:

  • switch言辞后面的选料表达式的数据类型只能够是整型或字符串,不克是boolean类型。通常是决定表达式是一个变量名称。
  • switch言后面的花括号是要有。
  • case语的个数没有规定,可以尽增加。但case签以及那个背后的价值内应当一个空格,值后面必须来一个冒号,这是语法的一律局部。
  • switch配合完之后,将次第逐条执行匹配的分层模块中的语,直到switch布局结束或者遇到了break报告词才止住实施。
  • switch语句中default签直接以后边长一个冒号,其意思是凡表达式的价不克和眼前任何一个case签后底价当,这时才实施default分出着的言辞。default标签可以大概。

Demo

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

    switch( $week ) {
        case "Mon": echo "星期一"; break;                  
        case "Tue": echo "星期二"; break;                      
        case "Wed": echo "星期三"; break;                      
        case "Thu": echo "星期四"; break;              
        case "Fri": echo "星期五"; break;           
        case "Sat": echo "星期六"; break;        
        case "Sun": echo "星期日"; break;        
    }           
?>

巢状条件分支

巢状式条件分支组织就是if话语的嵌套,即指ifelse末端的代码块被并且带有if语句。

Demo

<?php
    $sex = "male";                                              //用户输入的性别
    $age = 25;                                                  //用户输入的年龄

    if ( $sex == "male" ) {                                     //如果用户输入的是男性则执行下面的区块
        if ( $age >= 60 ) {                                     //如果是男性并且年龄在60以上则执行下面的区块
            echo "这个先生已退休".($age-60)."年了";
        } else {                                                //如果是男性并且年龄在60以下则执行下面的区块
            echo "这个先生在工作,还有".(60-$age)."年才能退休";
        }   
    } else {                                                    //如果用户输入的是女性则执行下面的区块
        if( $age >= 55 ) {                                      //如果是女性并且年龄在55以上则执行下面区块
            echo "这个女士已退休".($age-55)."年了";
        } else {                                                //如果是女性并且年龄在55以下则执行下面区块
            echo "这个女士在工作,还有".(55-$age)."年才能退休";
        }
    }           
?>

相关文章