PHP中的分支

if ( true ) {
//条件为true执行这里的代码
}else {
//条件为false执行这里的代码
}

一、单一条件分支结构(if)

if ( true ) {
//条件为true执行这里的代码
}

a、if 单行执行代码

$drink = true;
if ($drink)
    echo '喝酒刺激大脑,白天你一定不能集中精力';

b、if 多行执行代码块

$drink = true;
if ($drink){
     echo '喝酒刺激大脑,白天你一定不能集中精力学习';
     echo '喝酒伤钱,钱却不是你自己挣多,害臊不';
     echo '还是一个字:严厉打击,在学习期间,酗酒,夜不归宿的同志';
}

双向条件分支 (else/else:)

$t=date("H");
if ($t < "20") {
  echo "Have a good day!";
} else {
  echo "Have a good night!";
}
/*******************************/
$var = '00abc';
if( is_numeric($var) ):
    echo 'true';
else: 
    echo 'false';
endif;

多向条件分支结构(elseif)

需要做出多个决定,这些决定可能有多于两个的选项。

1、在elseif语句中同时只能有一个表达式为true 2、总是有先把包含范围小的条件放在前面处理

$a = 0;
if( $a >0 && $a<60 ){
    echo '成绩不及格';
}elseif ($a>=60 && $a<=90){
    echo '继续努力';
}elseif( $a > 90 && $a <=100 ){
    echo '非常棒,继续加油';
}else{
    echo '你的成绩有问题啊';
}

工作中注意点

在函数或类中使用if/else之时,有个常见的误解---else必须一起使用以声明潜在的结果。然而,如果,结果是定义返回值,则'else'是不需要的,因为'return'会结束函数,使得else变得毫无意义。

function test($a)
{
    if ($a) {
        return true;
    } else {
        return false;
    }
}

vs.

function test($a)
{
    if ($a) {
        return true;
    }
    return false;       // 不需要else分支
}

多向(switch)

Switch语句是一种避免输入无穷尽的if和elseif的绝妙方式,但需要注意几点:

  • Switch语句仅比较值,并不关心类型(等价于'==')
  • 逐个分支地迭代直到找到一个匹配项。如果没找到匹配项,则使用缺省(default)分支(如果定义了)
  • 若匹配项的代码体没有'break'语句,则会继续执行接下来的每个分支,直到遇到一个break/return语句
  • 在函数内,使用'return'可以减少'break'的使用,因为'return'能够结束函数
  • default 不是必须的,可以省略。
$answer = test(2);      // 'case 2'和'case3'的代码体会得到执行

function test($a)
{
    switch ($a) {
        case 1:
            // code...
            break;      // break用于结束switch语句
        case 2:
            // code...  // 没有break,继续比较'case 3'
        case 3:
            // code...
            return $result;     // 当前位置在函数内,'return'会结束函数
        default:
            // code...
            return $error;
    }
}