Php 如何使发电机内爆?

Php 如何使发电机内爆?,php,generator,Php,Generator,我有一个可以生成一些$key=>$value 是否有一种“简单”的方法来获取值(通过传递生成器名称)?或者将其转换为数组 我可以用几行代码来实现这一点,但是否有一些内置函数可以实现这一点?您可以使用函数实现同样的功能,请查看以下示例: function gen_one_to_three() { for ($i = 1; $i <= 3; $i++) { // Note that $i is preserved between yields. yiel

我有一个可以生成一些
$key=>$value

是否有一种“简单”的方法来获取值(通过传递生成器名称)?或者将其转换为数组

我可以用几行代码来实现这一点,但是否有一些内置函数可以实现这一点?

您可以使用函数实现同样的功能,请查看以下示例:

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();

$array = iterator_to_array($generator);
print_r($array);

我们必须记住这一点

生成器只是一个返回迭代器的函数

例如:

function digits() {
    for ($i = 0; $i < 10; $i++) {
        yield $i;
    }
}
函数位(){
对于($i=0;$i<10;$i++){
收益率1美元;
}
}
digits
是生成器,
digits()
是迭代器


因此,应该搜索“迭代器到数组”函数,以查找(建议)

尝试
迭代器到数组
函数谢谢!我应该搜索
iterator
而不是
generator
来找到答案。答案已添加
function digits() {
    for ($i = 0; $i < 10; $i++) {
        yield $i;
    }
}