<?php
function createRangeNoYield($max) {
$data = [];
for($i = 0; $i < $max; $i++) {
$data[] = $i;
}
return $data;
}
function createRangeUseYield($max) {
for($i = 0; $i < $max; $i++) {
yield $i;
}
}
$max = 10000000; //1KW
//$result = createRangeNoYield($max); //调用该函数直接报内存不足
$result = createRangeUseYield($max);
foreach($result as $key => $value) {
echo $value."<br />";
}
yield核心思路:循环一次生成一次