• 1.5k

php yield 在当前场景下的使用区别是什么?

<?php
function test1($id)
{
    yield idIsValid($id);
    // idIsValid($id);
    yield 666;
}

function idIsValid($id)
{
    if ($id <= 1) {
        throw new Exception('id不对');
    }
}

// $value = 1;
$value = 0;
$ids = test1($value);
foreach ($ids as $id) {
    echo $id;
}

在第四行和第五行:

yield idIsValid($id);
// idIsValid($id);

两种方式如何写,返回的结果都是一样的,请问两者的区别是什么?

阅读 3.6k
评论
    3 个回答

    简单说:数据来源非常大,一次载入会占用过多内存的时候,就选择 yield

    如果数据量很小,就一次全部载入内存。

      相似问题
      推荐文章