PHP生成器与迭代器对象的比较

王林
发布: 2023-09-16 17:41:02
转载
1039人浏览过

php生成器与迭代器对象的比较

简介

当调用生成器函数时,内部会返回一个新的 Generator 类对象。它实现了迭代器接口。迭代器接口定义了以下抽象方法

  • Iterator::current - 返回当前元素
  • Iterator: :key — 返回当前元素的键
  • Iterator::next — 向前移动到下一个元素
  • 迭代器: :rewind — 将迭代器倒回到第一个元素
  • Iterator::valid — 检查当前位置是否有效

生成器充当仅前向迭代器对象,并提供可调用的方法来操纵生成器的状态,包括向生成器发送值和从生成器返回值。

生成器作为交互器

在下面的示例中,生成器函数在生成器对象的文件中生成行,可以使用 oreach 循环遍历这些行。还可以调用诸如 current() 和 next() 之类的迭代器方法。但是,由于生成器是只向前迭代器,因此调用 rewind() 方法会抛出异常

Android数据格式解析对象JSON用法 WORD版
Android数据格式解析对象JSON用法 WORD版

本文档主要讲述的是Android数据格式解析对象JSON用法;JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛运用于客户端和服务器通信,在网络数据传输与解析时非常方便。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

Android数据格式解析对象JSON用法 WORD版 0
查看详情 Android数据格式解析对象JSON用法 WORD版

示例

<?php
function filegenerator($name) {
   $fileHandle = fopen($name, 'r');
   while ($line = fgets($fileHandle)) {
      yield $line;
   }
   fclose($fileHandle);
}
$name="test.txt";
$file=filegenerator($name);
foreach ($file as $line)
echo $line;
$file->rewind();
echo $file->current();
$file->next();
echo $file->current();
?>
登录后复制

输出

遍历文件行后,显示如下致命错误

立即学习PHP免费学习笔记(深入)”;

PHP User Defined Functions
PHP Function Arguments
PHP Variable Functions
PHP Internal (Built-in) Functions
PHP Anonymous functions
PHP Arrow Functions
PHP Fatal error: Uncaught Exception: Cannot rewind a generator that was already run
登录后复制

以上就是PHP生成器与迭代器对象的比较的详细内容,更多请关注php中文网其它相关文章!

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:tutorialspoint网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号