iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
自我挑戰組

後端新手PHP+Laravel筆記系列 第 8

[Day8]PHP判斷式01

  • 分享至 

  • xImage
  •  

PHP判斷式

If Else 判斷句

If 可以使用在判斷某條件達成時執行語句,else則是在不滿該條下執行。

以下使用範例示範

<?php
if ($a > $b){
console.log("a win");
}else {
console.log("b win");
}
?>

else if判斷句

是if 語句的延伸,可以在原來的 if 表達式值為 false 時執行不同語句。但是和 else 不一樣的是,它僅在 elseif 的條件表達式值為 true 時執行語句。

以下使用範例示範:

<?php
if($a > $b){
    echo "a is bigger than b";
}
elseif($a == $b){
    echo "a is equal to b";
}else{
    echo "a is smaller than b";
}
?>

while迴圈

只要條件成立就會重複執行語句,表達式在每次開始循環前檢查,所以即使值在循環語句中改變,語句也不會停止執行,值到此次循環結束。

如果while表達式一開始的值為false,則循環語句一次都不會執行。

<?php
$i = 1;
while ($i <= 10) { // i > 10停止迴圈 
    echo $i++; // 先輸出 i 後再加一  
}
?>

do-while迴圈

和while迴圈相似,差別在於表達式的檢查是在循環結束時才檢查,所以do-while語句一定會執行循環語句一次。

以下範例:

<?php
$i = 0;
do{
    echo $i;
} while($i<0);
?>

剛好執行一次後停下,因為條件不符合。


for迴圈

for迴圈的語法是:

for (expr1; expr2; expr3)

    statement

expr1:此表達式會在執行前,無條件執行一次。

expr2:在每次循環開始前求值。如果值為 true,則繼續循環,執行statement的循環語句。如果值為 false,則終止循環。

expr3:在循環之後,賦值(並執行)

以下所有範例為顯示1~10數字:

<?php
/* example 1 */

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}

/* example 2 */

for ($i=1; ; $i++){
    if ($i > 10){
        break;
    }
    echo $i;
}

/* example 3 */

for (;;){
    if ($i > 10) {
    break;
}
    echo $i;
    $i++;
}

/* example 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

foreach

foreach 語法結構提供了可以遍歷array的簡單方式,foreach只能用於array和object,用於其他數據類型的變數,會發出錯誤。

foreach語法如下:

foreach (iterable_expression as $value)
statement

foreach (iterable_expression as $key => $value)
statement

第一種格式遍歷,會將iterable_expression內的值賦予給$value。

第二種格式遍歷與第一種相似,但會在每次循環將當前的鍵值賦予給$key。

以下為範例:

<?php
/* foreach example 1: value only */
$arr = array(2, 4, 6, 8);
foreach($arr as $value){
    echo "value = $value \n";
}

/* foreach example 2: key and value */
$arr = array(
    "name" => "joe",
    "cel" => 1234567,
    "address" => "Taiwan"
);
foreach($arr as $key => $value){
    echo "$key => $value \n";
}
?>

/* foreach example 3: dynamic arrays */

foreach (array(2, 4, 6, 8, 10) as $v) {
    echo "$v\n";
}

用 list() 給嵌套的數組解包

可以遍歷一個數組的數組並且把嵌套的數組解包到循環變量中,只需將 list() 作為值提供。

<?php
$array = [
[1, 2],
[3, 4],
];

foreach ($array as list($a, $b)) {
    // $a contains the first element of the nested array,
    // and $b contains the second element.
    echo "A: $a; B: $b\n";
}
?>

範例輸出:

A: 1; B: 2
A: 3; B: 4

list() 中的單元可以少於嵌套數組的,此時多出來的數組單元將被忽略,如果list中單元多於嵌套數組,則會報錯:

<?php
$array = [
[1, 2],
[3, 4],
];

foreach ($array as list($a)) {
    // Note that there is no $b here.
    echo "A: $a;\n";
}
?>

輸出

A: 1;
A: 3;

資料來源: https://www.php.net/


上一篇
[Day7]PHP運算符02
下一篇
[Day9]PHP判斷式02
系列文
後端新手PHP+Laravel筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言