2.5PHP复合(Compound)类型之可迭代(Iterable)

可迭代(Iterable)类型的对象是任何 array 或 实现了 Traversable 接口的类的对象,否则会抛出一个 TypeError异常。

Traversable 接口是无法被单独实现的基本抽象接口,必须由 IteratorAggregate 或 Iterator 接口实现。

可迭代(Iterable)类型的对象能用 foreach 迭代,也可以和 生成器 里的 yield from 一起使用。

foreach迭代

可迭代(Iterable)类型的对象可以用作函数的参数 或 返回类型。

//函数的参数
function foo(iterable $iterable) {
    foreach ($iterable as $value) {
        // ...
    } 
}

//函数的返回类型
function bar(): iterable {
    return [1, 2, 3];
}

生成器返回类型

function gen(): iterable {
    yield 1;
    yield 2;
    yield 3;
}

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/php/phplang/5319.html

(1)
上一篇 2021年2月4日 22:18
下一篇 2021年2月5日 20:01

相关推荐

  • 2.1PHP语言的类型声明和类型转换

    1.类型声明 类型声明可以用于函数的参数、返回值、类的属性,如果预期类型在调用时不匹配,则会抛出一个 TypeError 异常。 类型 说明 bool 值必须为一个布尔值。 int 值必须为一个整型数字。 float 值必须为一个浮点数字。 string 值必须为一个 string。 ar…

    PHP语言教程 2021年2月1日
    01000
  • 2.4PHP复合(Compound)类型之数组(Array)

    1.索引数组 索引数组中的值是有序的,通过索引访问。 索引数组中的值不必都属于同一个类型,而且可以随时替换值。 索引数组的长度(值的个数)可以动态改变,可以向索引数组添加、删除值。 2.关联数组 key 可以是 int 或者 string。value 可以是任意类型。 关联数组中的值是通过键访问。 关联数组里的值不必都…

    PHP语言教程 2021年2月4日
    03360
  • 3.3PHP语言的抽象(Abstract)类和接口(Interface)

    抽象类 PHP支持抽象类和抽象方法。定义为抽象的类不能被实例化但可以被子类继承。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。 继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控…

    PHP语言教程 2021年3月3日
    05550

发表评论

登录后才能评论