Định nghĩa và Cách sử dụng
Từ phiên bản 7.1 trở đi, PHP cung cấp một kiểu giả mới được gọi là có thể lặp lại . Bất kỳ đối tượng nào (chẳng hạn như mảng) triển khai Có thể duyệt giao diện được ghi nhận bởi nó. Loại này sử dụng cấu trúc foreach hoặc hàm trình tạo tạo ra một giá trị tại một thời điểm.
Cú pháp
Một hàm có thể có thể lặp lại dưới dạng loại tham số của nó để cho phép hàm chấp nhận một bộ giá trị được sử dụng trong foreach tuyên bố. Nếu tham số không hỗ trợ vòng lặp foreach, trình phân tích cú pháp PHP sẽ ném TypeError
Ví dụ
<?php $arr1=array("PHP","Java","Python"); function myfunc (iterable $arr1){ foreach ($arr1 as $lang){ echo $lang . "\n"; } } myfunc($arr1); ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau -
PHP Java Python
Một hàm PHP cũng có thể trả về kiểu dữ liệu có thể lặp lại chẳng hạn như mảng. Chúng tôi sử dụng is_iterable () chức năng xác minh loại giá trị trả về.
Ví dụ
<?php function newfunc ():iterable{ $arr2=[]; for ($i=1;$i<4;$i++){ $arr2[$i]=$i*2; } return $arr2; } $ret=newfunc(); var_dump (is_iterable($ret)); ?>
Đầu ra
Điều này sẽ tạo ra kết quả sau -
bool(true)
Sau đây là một ví dụ về trình tạo với kiểu trả về có thể lặp lại
Ví dụ
<?php function gen(): iterable { yield 1; yield 2; yield 3; } gen(); ?>
Phiên bản PHP
Kiểu giả có thể lặp lại được giới thiệu trong PHP 7.1