猿问

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);

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

人到中年有点甜
浏览 649回答 3
3回答

湖上湖

简单说:数据来源非常大,一次载入会占用过多内存的时候,就选择 yield 如果数据量很小,就一次全部载入内存。
随时随地看视频慕课网APP
我要回答