`
fighter1945
  • 浏览: 230672 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《modern php》的note1-php5.5 yield

    博客分类:
  • php
阅读更多

在看《modern php》,区区200页的东西,看的我神清气爽

还是来尽量总结一下吧,免得看了又忘掉

 

yield

官方介绍 http://php.net/manual/zh/language.generators.syntax.php

php5.5以上可用

 

简单来说,对我自己的主要用处

1 读文件的时候可以不用一次性全读入,只读一行

2 db取行的时候,可以一行行取

虽然速度都是慢了,但是可以避免内存溢出。

 

理解上,每一个yield相当于一次return

 

要注意官方的第4个例子

我怎么觉得像闭包?我的个天。

 

 

<?php
function &gen_reference() {
    $value = 3;

    while ($value > 0) {
        yield $value;
    }
}

/* 
 * 我们可以在循环中修改$number的值,而生成器是使用的引用值来生成,所以gen_reference()内部的$value值也会跟着变化。
 */
foreach (gen_reference() as &$number) {
    echo (--$number).'... ';
}
?>

 

 

以上例程会输出:

2... 1... 0...

 

分享到:
评论

相关推荐

    PHP5.5集成包

    1. **PHP5.5的主要特性** - **新特性**:引入了yield关键字,支持生成器(Generators),这在处理大量数据时可以节省内存。增加了opcache,用于提升代码执行速度。 - **错误处理**:引入了异常处理机制,使得错误...

    PHP 5.5 yield and promises

    Coroutines generalize subroutines to allow multiple entry points for suspending and resuming execution at certain locations.cooperative tasks, exceptions, event loop,iterators, infinite lists and ...

    PHP最新5.5 API开发文档HTML版

    1. **闭包(Closure)的改善**:在5.5版本中,闭包的功能得到了增强,比如添加了`use`语句来捕获外部变量,以及可以创建匿名类。这使得闭包在对象交互和代码组织上更加灵活。 2. **OPcache**:这是一个新的内置加速...

    php5.5 版本

    在加密安全方面,PHP 5.5开始弃用不安全的MD5和SHA-1散列函数,推荐使用更安全的算法如bcrypt或scrypt。同时,`password_hash()`和`password_verify()`函数的引入,为存储和验证用户密码提供了一种安全的标准方法。 ...

    PHP5.5新特性之yield理解与用法实例分析

    在PHP 5.5版本中,`yield`关键字引入了一个重要的新特性——生成器(Generator)。生成器是一种特殊的迭代器,它允许你在不一次性加载所有数据到内存的情况下生成一系列值。这种方式极大地提高了处理大量数据时的...

    Python库 | pytest-yield-1.0.0.zip

    资源分类:Python库 所属语言:Python 资源全名:pytest-yield-1.0.0.zip 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    php5.5 5.6 ioncube_loaders_win_vc11_x86扩展

    1. **默认开启的OPcache**: 从5.5的可选特性变为5.6的默认配置。 2. **Scalar类型声明**: 允许开发者强制参数和返回值为特定的标量类型(整型、浮点型、字符串或布尔型)。 3. **Unicode字符支持**: 在字符串中使用`...

    Python库 | ffmpeg_progress_yield-0.1.2-py2.py3-none-any.whl

    pip install ffmpeg_progress_yield-0.1.2-py2.py3-none-any.whl ``` 然后,开发者就可以在Python代码中导入`ffmpeg_progress_yield`库,并开始利用其提供的功能来处理多媒体文件了。在编写代码时,可以参考库的...

    php-5.5.3 64

    - **更好的性能**:PHP 5.5系列在性能上有显著提升,包括更快的脚本执行速度和内存管理优化。 - **新增函数和特性**:例如,`password_hash()`和`password_verify()`用于更安全的密码存储和验证,`finally`关键字...

    T03-Sleep-Yield-Join.java

    T03_Sleep_Yield_Join.java

    php-7.0.20-nts-Win32-VC14-x64 php7.0资源下载

    PHP7 ,将会是PHP脚本语言的重大版本更新,同时将带来大幅的性能改进和新的特性,以及改进一些过时功能。该发布版本将会专注在性能加强,源自PHP版本树中的phpng分支 . . 截止到目前为止,PHP官方已经发布了php7的...

    PyPI 官网下载 | ffmpeg_progress_yield-0.1.2-py2.py3-none-any.whl

    资源来自pypi官网。 资源全名:ffmpeg_progress_yield-0.1.2-py2.py3-none-any.whl

    PHP5.5中文用户手册(多HTML版)

    1. **闭包(Closures)的增强**:在PHP5.5中,闭包可以作为类的属性和静态方法,这增强了面向对象编程的能力,使得回调和事件处理更加灵活。 2. **OPcache**:这是一个内置的代码缓存机制,用于提高PHP脚本的执行...

    php_5.5.10

    PHP 5.5 系列是在 PHP 5.4 系列之后发布的,相比 PHP 5.4,PHP 5.5 引入了许多新特性和改进,旨在提高开发效率和代码质量。 ### PHP 5.5.10 新特性 #### 1. **密码哈希 API** - **新函数**:`password_hash()` 和...

    解析PHP 5.5 新特性

    1. **生成器 (Generators) 和 `yield` 关键字** 生成器是一种特殊的函数,允许在执行过程中暂停并保存状态,从而有效地降低了迭代时的内存开销。`yield` 关键字使得函数能够在执行到特定点时返回一个值,并且能够被...

    php.ini-development

    Default Value: -1 (Unlimited) ; Development Value: 60 (60 seconds) ; Production Value: 60 (60 seconds) ; output_buffering ; Default Value: Off ; Development Value: 4096 ; Production Value: 4096 ; ...

    x86 VC11运行库+redis+igbinary扩展 PHP5.5版本

    3. **PHP 5.5**:这是一个古老的PHP版本,发布于2013年,带来了许多新特性,如:opcache(用于提高PHP脚本执行效率的内建缓存)、生成器(yield关键字,允许函数返回一系列值而非一次性返回)、intl扩展的增强等。...

    php-5.5.32.tar.gz

    1. **PHP 5.5的亮点特性**: - **OpCache**:这是PHP 5.5内置的opcode缓存器,提高了PHP脚本的执行效率。 - **闭包的__invoke()方法**:使得匿名函数可以像普通对象方法一样被调用。 - **yield关键字**:支持生成...

    python-yield用法详解.pdf

    yield 1 print("Second item") yield 2 print("Third item") yield 3 ``` 在这个例子中,`simple_generator`函数通过使用`yield`关键字来创建一个生成器。 ### 3.2 调用生成器 为了从生成器中获取值,我们...

Global site tag (gtag.js) - Google Analytics