Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Iterable trong PHP

Định nghĩa và cách sử dụng

Từ phiên bản 7.1, PHP cung cấp một pseudo-type (kiểu giả) mới gọi là iterable. Bất kỳ object (như array) nào triển khai interface Traversable đều được chấp nhận. Kiểu này sử dụng cấu trúc foreach hoặc một generator function sinh ra từng giá trị một.

Cú pháp

Một function có thể dùng iterable làm kiểu tham số để cho phép function chấp nhận tập giá trị dùng trong foreach. Nếu tham số không hỗ trợ foreach, PHP sẽ ném TypeError.

Ví dụ

iterable làm tham số function

<?php
$arr1 = array("PHP", "Java", "Python");
function myfunc(iterable $arr1) {
    foreach ($arr1 as $lang) {
        echo $lang . "\n";
    }
}
myfunc($arr1);
?>

Kết quả

PHP
Java
Python

iterable làm kiểu trả về

Function PHP cũng có thể trả về kiểu iterable như array. Ta dùng is_iterable() để kiểm tra kiểu giá trị trả về.

<?php
function newfunc(): iterable {
    $arr2 = [];
    for ($i = 1; $i < 4; $i++) {
        $arr2[$i] = $i * 2;
    }
    return $arr2;
}
$ret = newfunc();
var_dump(is_iterable($ret));
?>

Kết quả

bool(true)

Generator với kiểu trả về iterable

<?php
function gen(): iterable {
    yield 1;
    yield 2;
    yield 3;
}
gen();
?>

Phiên bản PHP

Pseudo-type iterable được giới thiệu từ PHP 7.1.