Iterable是PHP7.1中引入的伪类型。接受实现可信接口的任何数组或对象。这些类型可以在foreach中迭代处理,也可以在生成器的yield from中使用。
使用小程序
iterable可以用作参数的类型。也就是说,函数假设一组值,但不介意值集的形式,因为它们是在foreach中使用的。如果值不是数组或可信实例,则会抛出类型错误。
示例1可迭代参数类型的示例:
<?php function foo(iterable $iterable) { foreach ($iterable as $value) { // ... } } ?>
声明为iterable的参数可以使用空值或数组作为默认值。
示例2可操作参数的默认值示例:
<?php function foo(iterable $iterable = []) { // ... } ?>
可迭代对象也可以用作返回值的类型,表示函数返回可迭代值。如果返回值不是数组或可信实例,则会抛出类型错误。
示例3可重复的返回值类型的示例:
<?php function bar(): iterable { return [1, 2, 3]; } ?>
作为返回值类型声明iterable的函数也可以是生成器。
实例#4可编程生成器返回值类型示例:
<?php function gen(): iterable { yield 1; yield 2; yield 3; } ?>