PHP 使用生成器重写randomNumbers()

示例

我们的randomNumbers()函数可以重写为使用生成器。

<?php

function randomNumbers(int $length)
{
    for ($i = 0; $i < $length; $i++) {
        // yield告诉PHP解释器该值
        // 应该是当前迭代中使用的那个。
        yield mt_rand(1, 10);
    }
}

foreach (randomNumbers(10) as $number) {
    echo "$number\n";
}

使用生成器,我们不必构建从函数返回的随机数的完整列表,从而减少了使用的内存。