PHP 8 foreach 迴圈語法與範例

PHP 8 中的 foreach 是一種用來迭代陣列或物件的結構,這種迴圈提供了一種簡單而高效的方法來循環陣列或集合,並對每個元素進行操作,以下是 foreach 的一些基本用法及其新功能介紹。

基本用法

迭代陣列

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

foreach ($array as $value) {
    echo $value . "\n"; // 將輸出 1 到 5
}
?>

迭代關聯陣列

<?php
$assocArray = ["a" => 1, "b" => 2, "c" => 3];

foreach ($assocArray as $key => $value) {
    echo "$key => $value\n"; // 將輸出 a => 1, b => 2, c => 3
}
?>

參考使用

可以使用參考來修改陣列中的值:

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

foreach ($array as &$value) {
    $value *= 2;
}

print_r($array); // 將輸出 [2, 4, 6, 8, 10]
?>

注意:使用參考時務必小心,特別是在同一作用域中重複使用 foreach 時,可能會引發意外的行為。

物件的迭代

foreach 也可以用來迭代物件的屬性:

<?php
class MyClass {
    public $prop1 = "Hello";
    public $prop2 = "World";
    public $prop3 = "!";
}

$obj = new MyClass();

foreach ($obj as $property => $value) {
    echo "$property => $value\n"; // 將輸出 prop1 => Hello, prop2 => World, prop3 => !
}
?>

PHP 8 的新功能

PHP 8 引入了一些新的特性和改進,雖然這些改進不是專門針對 foreach,但它們提升了整體語言的可用性和效能。

Nullsafe 運算子

這個運算子允許在鏈式調用中更安全地處理可能為 null 的物件。

<?php
$person = null;
foreach ($person?->getFriends() ?? [] as $friend) {
    echo $friend->name;
}
?>

在這個例子中,如果 $person 為 null,$person?->getFriends() 將返回 null,而不是拋出錯誤,整個表達式將返回空陣列。

match 表達式 (match expression)

PHP 8 的 match 表達式提供了一種更強大且靈活的方式來替代 switch。

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

foreach ($array as $value) {
    echo match ($value) {
        1 => "one",
        2 => "two",
        3 => "three",
        4 => "four",
        5 => "five",
        default => "unknown"
    };
    echo "\n";
}
?>

總結

foreach 是 PHP 中強大且靈活的迴圈結構,適用於遍歷陣列和物件,PHP 8 的一些新功能和改進,進一步提升了開發者在處理資料結構時的便利性和效率,無論是基本使用,還是結合新特性,foreach 都能幫助簡化程式碼並提高生產力。

延伸閱讀

© Copyright wibibi.com 網頁設計教學百科 基礎的網頁設計規劃、資料庫與程式設計 Since 2012