重溫手冊(四):流程控制

Mingo1125發表於2021-01-27
if(true){
    echo '1'; //1
}

if(true){
    echo '1'; //1
}else{
    echo '2';
}

if(true){
    echo '1'; //1 從上往下,只執行最先為true條件的if語句
}elseif(true){
    echo '2';
}else{
    echo '3';
}

$a = 0;
while($a < 10){
    echo $a++; //0123456789
}

do{
    echo '無條件先執行一次'; //無條件先執行一次
}while(false);

$b = 0;
do{
    echo $b++; //12345678910
}while($b < 10);

表示式1:迴圈開始前無條件執行且只執行一次

$a = 0;
$b = 0;
for(++$a; ; ){
    echo $a; //11111 因為只執行一次++$a,所以$a一直都是1
    $b += $a;
    if($b == 5){
        break;
    }
}

表示式2:每次迴圈前求值,為true繼續下一次迴圈,為false終止迴圈,如果留空則無限迴圈(預設為true)

$a = 10;
for( ; $a--; ){
    echo $a; //9876543210
}

表示式3:迴圈後才執行

$a = 10;
for( ; ; print_r($a)){ //987654321
    $a--;
    if($a == 0){
        break;
    }
}

$arr = array(
    '一','二','三'
);
foreach($arr as $key => $value){
    echo $key.'=>'.$value;
}
//0=>一
//1=>二
//2=>三

跳出當前迴圈到上級迴圈,預設為1,即跳到上一層迴圈

for($x = 0; $x < 1; $x++){

    for($y = 0; $y < 2; $y++){

        for($z = 0; $z < 3; $z++){

            echo "第三層";
        }

        echo "第二層";
    }

    echo "第一層";
}
//第三層 第三層 第三層 第二層 第三層 第三層 第三層 第二層 第一層

for($x = 0; $x < 1; $x++){

    for($y = 0; $y < 2; $y++){

        for($z = 0; $z < 3; $z++){
            continue; //或者continue 1;
            echo "第三層";
        }

        echo "第二層";
    }

    echo "第一層";
}
//第二層 第二層 第一層

for($x = 0; $x < 1; $x++){

    for($y = 0; $y < 2; $y++){

        for($z = 0; $z < 3; $z++){
            continue 2;
            echo "第三層";
        }

        echo "第二層";
    }

    echo "第一層";
}
//第一層

一般結構:

switch($num){
    case 1:
        echo '一';
    break;

    case 2:
        echo '二';
    break;

    case 3:
        echo '三';
    break;

    default:
        echo '其他';
    break;
}

多選結構:

switch($num){
    case 1:
    case 2:
    case 3:
        echo '一二三中的一個';
    break;

    default:
        echo '其他';
    break;
}

指令碼終止執行,預設返回NULL

function test(){
    return;
}
var_dump(test()); //NULL
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章