PHP学习笔记 PHP流程控制——分支结构 if else 语句、switch case 语句

PHP流程控制

流程控制对于任何一门编程语言来说都是至关重要的,我们正在学习的PHP也不例外。由于 PHP 的大部分语法都继承了C语言的特点,因此在流程控制方面,PHP 有着和C语言类似的流程控制。任何一门程序设计语言中,都需要支持满足程序结构化所需要的三种基本结构:顺序结构、分支结构(选择结构或条件结构)和循环结构。顺序结构的语句主要是赋值语句、输入/输出语句等,所以对于顺序结构就不必过多介绍了。本文介绍的就是分支结构语句:if else语句、switch case语句。

分支结构

顺序结构可以帮助解决赋值、计算、输入/输出等问题,但不能先做判断再选择执行赋值语句、计算语句、输入/输出语句等问题。对于要先做判断再选择的问题就要使用分支结构(又称为选择结构或条件结构)。

PHP if else语句

if结构是单一条件分支结构。

if (判断条件) {
	语句块;
}
# 注意:语句块只有一条语句。可以省略{}
<?php
    $a = 10;
	$b = 20;
    if($a < $b ){
        echo '$a小于$b';
    }
	// -----------------注意:语句块只有一条语句。可以省略{}-----
	if($a < $b ) echo '$a小于$b'; 

else子句,else语句是if语句的子句,必须和if一起使用,不能单独存在。

if (判断条件) {
	语句块;
} else {
	语句块;
}
# 注意:语句块只有一条语句。可以省略{}
<?php
    $a = 10;
	$b = 20;
    if ($a > $b ) {
        echo '$a小于$b';
    } else {
        echo '$a大于$b';
    }
	// -----------------注意:语句块只有一条语句。可以省略{}。-----
	if($a < $b ) echo '$a小于$b'; else echo '$a大于$b';

elseif子句。必须和if一起使用,不能单独存在。也可以写成“else if”(两个单词),它和“elseif”(一个单词)的行为完全一样。

注意: 必须要注意的是 elseifelse if 只有在类似上例中使用花括号的情况下才认为是完全相同。如果用冒号来定义 if/elseif 条件,那就不能用两个单词的 else if,否则 PHP 会产生解析错误。

if (判断条件) {
	语句块;
} elseif () {
	语句块;
} else {
	语句块;
}
# 注意:语句块只有一条语句。可以省略{}
<?php
    $a = 20;
	$b = 20;
    if ($a > $b ) {
        echo '$a小于$b';
    } elseif ($a == $b) {
        echo '$a等于$b';
    } else {
        echo '$a大于$b';
    }
	// -----------------注意:只能写一条语句。-----
	if($a < $b ) echo '$a小于$b'; elseif($a == $b) echo '$a等于$b'; else echo '$a大于$b';

if 语句可以无限层地嵌套在其它 if 语句中,这给程序的不同部分的条件执行提供了充分的弹性。

<?php
    $a = 20;
	$b = 20;
    if($a == $b ){
        $a = 10;
        if($a != $b)
            echo '$a不等于$b';
        else
            echo '$a等于$b';
    }else{
        echo '$a不等于$b';
    }

多多练习,运用自如。

PHP switch case语句

witch 语句由一个表达式和多个 case 标签组成,case 标签后紧跟一个代码块,case 标签作为这个代码块的标识。

switch(表达式){
	case 值 1:
		语句块 1;
		break;
	case 值 2:
		语句块 2;
			break;
	... ...
	case 值 n:
		语句块 n;
		break;
	default:
		语句块 n+1;
}
<?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 语句不同的是,switch 语句后面的控制表达式的数据类型只能是整型或字符串,不能是boolean型。通常这个控制表达式是一个变量名称,虽然PHP是弱类型语言,在switch后面控制表达式的变量可以是任意类型数据,但为了保证匹配执行的准确性,最好只使用整型或字符串中的一种类型。

  • 和if语句不同的是,switch语句后面的花括号是必须有的。而switch语句中各case标签前后代码块的开始点和结束点非常清晰,因此完全没有必要为case后的代码块加花括号。

  • case语句的个数没有规定,可以无限增加。但case标签和case标签后面的值之间应有一个空格,值后面必须有一个冒号,这是语法的一部分。

  • switch匹配完成以后,将依次逐条执行匹配的分支模块中的语句,直到switch结构结束或者遇到break语句才停止执行。所以,如果一条分支语句的后面没有写上break语句,则程序将继续执行下一条分支语句的内容。

    <?php
    	$i=0;
        switch ($i) {
            case 0:
                echo "i = 0 ";
            case 1:
                echo "i = 1 ";
        }
    	//结果:i = 0 i = 1
    	$i=0;
        switch ($i) {
            case 0:
                echo "i = 0 ";
                break;
            case 1:
                echo "i = 1 ";
                break;
        }
    	//结果:i = 0
    
  • 与if语句中的else类似,switch语句中的default标签直接在后面加上一个冒号,看似没有条件,其实是有条件的,条件就是“表达式”的值不能与前面任何一个case标签后的值相等,这时才处理default分支中的语句。default标签和if中的else子句一样,它不是switch语句中必需的,可以省略。在PHP 7之前,switch语句中允许多个default默认值,从PHP 7开始,只能有一个default默认值,否则会产生fatal级别错误。

  • switch 语句中条件只求值一次并用来和每个 case 语句比较。在 elseif 语句中条件会再次求值。如果条件比一个简单的比较要复杂得多或者在一个很多次的循环中,那么用 switch 语句可能会快一些。

  • 注意:continue语句作用到 switch 上的作用类似于 break。如果在循环中有一个 switch 并希望 continue 到外层循环中的下一轮循环,用 continue 2

  • 允许使用分号代替 case 语句后的冒号。

提示

(。◕ˇ∀ˇ◕)遇见就是缘分,如果觉得对自己有帮助,喜欢的可以收藏或者留下一个谢谢支持。
关注我编程不迷路。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值