如何使发电机内爆?

oli*_*ool 6 php generator

我有一个PHP 生成器,它生成一些$key => $value.

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

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

Che*_*eta 2

您可以使用iterator_to_array函数来实现相同的目的,请看下面的示例:

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);
Run Code Online (Sandbox Code Playgroud)

输出

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Run Code Online (Sandbox Code Playgroud)