当前位置: 首页 > news >正文

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

相关文章:

  • 5. Hadoop集群操作
  • 数据库安装与配置
  • Lua 在终端使用交互模式
  • TCS34725颜色感应识别模块
  • python学习笔记:基础语法
  • 面试~Synchronized 与 锁升级
  • 【C++学习】C++入门知识(下)
  • 【23秋招c++后端面试技术突围】TCP/IP 之 滑动窗口、Nagle算法和延迟确认
  • .Net Redis的秒杀Dome和异步执行
  • 开学总动员!2022华为开发者大赛等你来挑战!
  • 【WACV2022】DAQ | 首尔大学首次为超分辨率网络提出逐通道分布自适应量化方法,效果显著
  • STM32 Bootloader跳转后不执行程序的问题解决记录
  • 阿里内部人手一份!P8大佬也叫好的 高性能MySQL系列
  • 408数据结构学习强化——常见数据结构定义和算法总结
  • 全栈Python自动化测试学习资料【付费资源、看到即赚到,】
  • 「面试题」如何实现一个圣杯布局?
  • 5、React组件事件详解
  • angular2 简述
  • CentOS 7 修改主机名
  • co模块的前端实现
  • CSS3 变换
  • CSS相对定位
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • js
  • mongodb--安装和初步使用教程
  • nodejs:开发并发布一个nodejs包
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Python学习之路16-使用API
  • Sass Day-01
  • SpingCloudBus整合RabbitMQ
  • Spring Cloud Feign的两种使用姿势
  • 大整数乘法-表格法
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 聊聊directory traversal attack
  • 漂亮刷新控件-iOS
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 什么软件可以剪辑音乐?
  • scrapy中间件源码分析及常用中间件大全
  • ​iOS实时查看App运行日志
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​用户画像从0到100的构建思路
  • ###STL(标准模板库)
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $L^p$ 调和函数恒为零
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (三)uboot源码分析
  • (学习日记)2024.01.19
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .htaccess 强制https 单独排除某个目录
  • .Net Core与存储过程(一)
  • .net Stream篇(六)
  • .net和jar包windows服务部署