V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
via
V2EX  ›  PHP

纠正一下一篇关于 PHP 中 yield 关键字文章的一个错误

  •  
  •   via · 2019-05-05 12:21:42 +08:00 · 2762 次点击
    这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://learnku.com/laravel/t/8704/using-yield-to-do-memory-optimization-in-php

    倒数第二个例子里生成器函数不能 return 除了 null 以外的值。

    ps: 在 laravel-china 没有帐号。

    4 条回复    2019-05-05 19:17:25 +08:00
    haiyang416
        1
    haiyang416  
       2019-05-05 12:30:25 +08:00
    大致扫了一下,这篇文章作者在理解生成器的概念上貌似有些偏差,比如拿 `yield` 和 `return` 作对比,又比如“生成器 类实现了 迭代器 接口, 这意味着你必须遍历 getValue() 方法来取值”。
    不建议用作参考。
    funnuy
        2
    funnuy  
       2019-05-05 13:02:09 +08:00
    在 PHP 7 可以了: https://3v4l.org/052Fs
    via
        3
    via  
    OP
       2019-05-05 17:25:31 +08:00
    @funnuy 最终发现是 php.net 翻译不及时的问题,https://www.php.net/manual/en/language.generators.syntax.php 这个页面已经说了 PHP7 可以,但是 https://www.php.net/manual/zh/language.generators.syntax.php 中文页面没有。
    JaguarJack
        4
    JaguarJack  
       2019-05-05 19:17:25 +08:00 via iPhone
    关于这个 yield 推荐看鸟哥的博客
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1163 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:44 · PVG 02:44 · LAX 10:44 · JFK 13:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.