生成器函数在PHP中不起作用,导致无限循环


Generator function not working in PHP and results in an infinite loop

我已经复制了PHP手册的代码:

http://php.net/manual/en/language.generators.syntax.php#example-295

function gen_one_to_three() {
    for ($i = 1; $i <= 3; $i++) {
        // Note that $i is preserved between yields.
        yield $i;
    }
}
$generator = gen_one_to_three();
foreach ($generator as $value) {
    echo "$value'n";
}

但当我在浏览器中运行这段代码时,它会导致一个无限循环:

1 1 1 1 11 1 1 11 1 1 1 11 1 1 11.致命错误:允许的内存大小134217728字节已用尽(试图分配448字节)

xdebug通知我脚本的内存已耗尽之前。

我在MAMP上安装了PHP 5.6.2,为什么我会遇到这个错误?

我发现了这个问题,因为所有喜欢我的人都在使用PHP AOP扩展https://github.com/AOP-PHP/AOP:

生成器无法工作,我在GitHub上打开了一个问题https://github.com/AOP-PHP/AOP/issues/93

在我的php.ini中,我更改了以下内容:

extension=aop.so

对此:

;extension=aop.so

重新启动Apache,现在一切都如手册所示完美运行。所以我想这个扩展有个错误。