php中yield的用法是什么

本篇文章给大家介绍一下phpyield的用法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

php中yield的用法是什么

之前有听过php 中自身也有协程,查看找了下并学习。

demo已上传  我的github笔记

yield 解决的问题

解决运行内存的瓶颈,php程序中的变量存储在内存中,之前有遇到过读取Excel文件时候,会出现内存不足,出现:

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

Fatal Error: Allowed memory size of xxxxxx bytes

登录后复制

所以会设置php 最大运行内存的设置: ini_set(‘memory_limit’, ‘200M’)

但是当我们读取5g 这么大的文件的时候,我们运行内存可能就吃不消了,所以会选择yield

初识Yield

运行:

<?php function createRange($number){    $data = [];    for($i=0;$i<$number;$i++){        $data[] = time();    }    return $data;}$data =createRange(10);foreach($data as $value){    sleep(1);//这里停顿1秒,我们后续有用    echo $value.PHP_EOL;}

登录后复制

在这里插入图片描述

时间是一样的。如果采用yield:

<?php function createRange($number){    for($i=0;$i<$number;$i++){        yield time();    }}$data =createRange(10);foreach($data as $value){    sleep(1);//这里停顿1秒,我们后续有用    echo $value.PHP_EOL;}

登录后复制

在这里插入图片描述

时间则间隔一秒钟,所以通过yield 的例子知道,不是像第一个例子中把for 循环的内容储存在内存中,而是一个一个消耗。

读取文件的例子

创建一个txt 文件写入:

第1行第2行第3行第4行第5行第6行第7行第8行

登录后复制

 $value) {    # code...    sleep(1);    echo $value;}

登录后复制

用php 读取文件,则是一行一行的读取

在这里插入图片描述

到这边,大概知道了yield 的作用了,之后咱再深入

推荐学习:php视频教程

以上就是php中yield的用法是什么的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2513979.html

(0)
上一篇 2025年3月5日 15:20:52
下一篇 2025年2月17日 22:45:41

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • PHP如何使用加密伪随机数生成器

    本篇文章给大家介绍一下php使用加密伪随机数生成器的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 PHP的加密伪随机数生成器的使用 今天我们来介绍的是 PHP 中的加密伪随机数生成器(CSPRNG 扩展)。随机数的…

    2025年3月5日
    200
  • PHP如何生成与识别二维码

    本篇文章给大家介绍一下php生成与识别二维码的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 二维码的分类 线性堆叠式二维码 矩阵式二维码 二维码的优缺点 优点 信息容量大 立即学习“PHP免费学习笔记(深入)”; …

    2025年3月5日
    200
  • 关于PHP文件的那些“事”!!!

    上篇文章给大家介绍了《有关于php数组的进一步了解!!!》,本文继续给大家介绍什么是php 文件,如果你对php文件的运用感兴趣,何不来和我一起学习呢? fopen() 函数用于在 PHP 中打开文件。 打开文件 fopen() 函数用于在…

    2025年3月5日 编程技术
    200
  • php怎么强制类型转换为object

    在php中,可以在要转换的变量或值之前加上用括号括起来的目标类型“(object)”来进行强制类型转换,将变量或值强制转换为object类型,例“(object) ‘ciao’”。 本教程操作环境:windows7系…

    2025年3月5日
    200
  • php怎么将字符串转换boolean类型

    方法:1、在要转换的变量前加上“(bool)”或“(boolean)”强制转换为boolean类型;2、用boolval()函数,语法“boolval(值)”;3、用settype()函数,语法“settype(值,”boole…

    2025年3月5日
    200
  • php不知道键值怎么删除数组元素

    删除方法:1、使用“unset(array[键名])”语句删除;2、使用“array_splice(array,元素位置, 1)”语句删除;3、使用“array_diff_key(array, [ “键名” =&gt…

    2025年3月5日
    200
  • php怎么查询多维数组的长度

    在php中,可以使用count()函数来查询多维数组的长度,该函数可以返回数组中元素的数目,语法“count(array,mode)”;当mode参数的值为1时,会计较多维数组,通过递归地方式计算多维数组中所有元素的数目。 本教程操作环境:…

    2025年3月5日
    200
  • php怎么获取数组前几位数据

    php中可用array_slice()函数获取数组前几位数据,该函数可以返回数组中的选定部分,语法“array_slice(array,0,length)”;参数length指定被返回数组的长度,只需根据需要获取数据的位数,设置整数值即可。…

    2025年3月5日
    200
  • 在linux上搭建php环境的方法

    在linux上搭建php环境的方法:1、打开终端,安装XAMPP for Linux;2、打开终端通过命令下载PhpStorm;3、打开PhpStorm,选择Activation code进行激活;4、创建一个PHP示例文件即可。 本文操作…

    2025年3月5日 编程技术
    200
  • php doc怎么转html

    php doc转html的实现方法:首先打开php.ini并修改开启com模块;然后通过“function word2html($wordname,$htmlname){…}”方法将doc转成html即可。 本文操作环境:Win…

    2025年3月5日
    200

发表回复

登录后才能评论