Câu hỏi

Trong PHP từ khoá yield để làm gì?

Câu trả lời

Trong PHP, từ khóa yield được sử dụng trong việc tạo ra các generator, một loại iterator đặc biệt cho phép bạn duyệt qua một tập hợp dữ liệu mà không cần tạo ra và lưu trữ toàn bộ tập hợp đó trong bộ nhớ. Điều này làm cho việc xử lý các tập dữ liệu lớn trở nên hiệu quả hơn về mặt bộ nhớ và thời gian xử lý.

Khi một hàm chứa yield được gọi, nó trả về một đối tượng Generator. Mỗi lần yield được thực thi, nó "tạm dừng" hàm và trả về một giá trị cho vòng lặp foreach đang gọi nó. Khi vòng lặp tiếp tục, hàm tiếp tục thực thi từ điểm nó đã tạm dừng cho đến khi gặp yield tiếp theo hoặc kết thúc hàm.

Ví dụ:

function getFibonacci() {
    $i = 0;
    $k = 1; // Giá trị fibonacci đầu tiên
    yield $k;
    while (true) {
        $k = $i + $k;
        $i = $k - $i;
        yield $k;
    }
}

$y = 0;
foreach (getFibonacci() as $fibonacci) {
    echo $fibonacci . "\n";
    $y++;
    if ($y > 30) break; // Ngăn chặn vòng lặp vô hạn
}

Trong v...

Bạn cần đăng nhập để xem