If 可以使用在判斷某條件達成時執行語句,else則是在不滿該條下執行。
以下使用範例示範
<?php
if ($a > $b){
console.log("a win");
}else {
console.log("b win");
}
?>
是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表達式一開始的值為false,則循環語句一次都不會執行。
<?php
$i = 1;
while ($i <= 10) { // i > 10停止迴圈
echo $i++; // 先輸出 i 後再加一
}
?>
和while迴圈相似,差別在於表達式的檢查是在循環結束時才檢查,所以do-while語句一定會執行循環語句一次。
以下範例:
<?php
$i = 0;
do{
echo $i;
} while($i<0);
?>
剛好執行一次後停下,因為條件不符合。
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 語法結構提供了可以遍歷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/