我已经复制了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,现在一切都如手册所示完美运行。所以我想这个扩展有个错误。