PHP

生成器

builder

Posted by Lv Hui on May 13, 2018

生成器

生成器函数看起来像普通函数,当生成器函数被调用时,返回一个可以被遍历的对象,遍历这个对象时,php会在每次需要值得时候调用生成器函数

1
2
3
4
5
6
7
8
9
10
11
12
13
function getnumber(){
	for($i = 1; $i <= 3; $i++){
		//每次返回值
		yield $i;
	}
}
$generator = getnumber();
foreach($generator as $v){
	echo $v;
}

//在表达式上下文用yield要用括号
$data = (yield $v);
  • 除了生成简单的值,生成器也支持生成键值对
  • yield 在没有传参数时,会生成null值