首页 > 编程语言 >php yield详解

php yield详解

时间:2022-10-23 11:22:30浏览次数:50  
标签:输出 遍历 Generator yield echo #### 详解 php ###

 

 

 

简单例子

//包含yield的函数可以生成一个generator 对象,可以被foreach 遍历
function Generator()
{
    for ($i = 0; $i < 3; $i++) {
        echo "输出存在感1\n";
        yield $i;
        echo "输出存在感2\n";
    }
}

echo "###返回对象1####\n";
var_dump(Generator());

echo "###返回对象####\n";

echo "###遍历一次情况####\n";

foreach (Generator() as $value) {

    var_dump($value);
    break; //只遍历一次的情况
}

echo "###遍历一次情况####\n";

echo "###一直遍历的情况####\n";

foreach (Generator() as $value) {

    var_dump($value); //遍历多次

}

echo "###一直遍历的情况####\n";

/*
    ###返回对象1####
    object(Generator)#1 (0) {
    }
    ###返回对象####
    ###遍历一次情况####
    输出存在感1
    int(0)
    ###遍历一次情况####
    ###一直遍历的情况####
    输出存在感1
    int(0)
    输出存在感2
    输出存在感1
    int(1)
    输出存在感2
    输出存在感1
    int(2)
    输出存在感2
    ###一直遍历的情况####
 * */
1:在调用函数返回的时候,可以发现for里面的语句并没有执行
2:在遍历一次的时候,可以发现调用函数,却没有正常的for循环3次,只循环了一次
3:在遍历一次的情况时,"存在感2"竟然没有调用,在一直遍历的情况下才调用

标签:输出,遍历,Generator,yield,echo,####,详解,php,###
From: https://www.cnblogs.com/zxqblogrecord/p/16818170.html

相关文章