PHP 为什么要使用发电机?
示例
当您需要生成大型集合以供以后迭代时,生成器很有用。与创建实现Iterator的类相比,它们是一种更简单的替代方法,而这通常是过大的。
例如,考虑以下功能。
function randomNumbers(int $length)
{
$array = [];
for ($i = 0; $i < $length; $i++) {
$array[] = mt_rand(1, 10);
}
return $array;
}该函数所做的全部工作就是生成一个由随机数填充的数组。要使用它,我们可以这样做randomNumbers(10),它将为我们提供10个随机数的数组。如果我们想生成一百万个随机数怎么办?randomNumbers(1000000)会为我们做到这一点,但是会消耗内存。数组中存储的一百万个整数使用大约33兆字节的内存。
$startMemory = memory_get_usage(); $randomNumbers = randomNumbers(1000000); echo memory_get_usage() - $startMemory, ' bytes';
这是因为一次生成了整个一百万个随机数,然后一次返回了,而不是一次返回。生成器是解决此问题的简便方法。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下