PHP Iterable 可迭代对象
PHP Iterable 可迭代对象
Iterable是 PHP 7.1 中引入的一个伪类型。它接受任何 array 或实现了 Traversable 接口的对象。这些类型都能用 foreach 迭代, 也可以和 生成器 里的 yield from 一起使用。
使用可迭代对象
可迭代对象可以用作参数类型,表示函数需要一组值, 但是不会关心值集的形式,因为它将与 foreach 一起使用。如果一个值不是数组或 Traversable 的实例,则会抛出一个 TypeError。
示例 #1 Iterable 可迭代参数类型示例
<?php
function foo(iterable $iterable) {
foreach ($iterable as $value) {
// ...
}
}
?>
声明为可迭代的参数可能会使用 null 或者一个数组作为默认值。
示例 #2 可迭代参数默认值示例
<?php
function foo(iterable $iterable = []) {
// ...
}
?>
可迭代对象还可以用作返回类型,表示函数将返回一个可迭代的值。 如果返回值不是数组或 Traversable 的实例,则会抛出一个 TypeError。
示例 #3 可迭代返回类型示例
<?php
function bar(): iterable {
return [1, 2, 3];
}
?>
将可迭代对象声明为返回类型的函数也可能是 生成器。
示例 #4 可迭代生成器返回类型的示例
<?php
function gen(): iterable {
yield 1;
yield 2;
yield 3;
}
?>
该博文为原创文章,未经博主同意不得转。
本文章博客地址:https://cplusplus.blog.csdn.net/article/details/127077952