English | 简体中文 | 繁體中文
查询

Fiber::getReturn()函数—用法及示例

「 获取在协程中使用 yield 关键字返回的值 」


函数名称:Fiber::getReturn()

适用版本:PHP 8.1.0 或更高版本

函数描述:Fiber::getReturn() 方法用于获取在协程中使用 yield 关键字返回的值。

用法示例:

function myCoroutine() {
    yield 'Hello';
    yield 'World';
    return 'Finished';
}

$fiber = new Fiber('myCoroutine');
$fiber->start();

while ($fiber->status() === Fiber::STATUS_SUSPENDED) {
    echo $fiber->getCurrent() . PHP_EOL; // 输出协程中的 yield 值
    $fiber->resume();
}

echo $fiber->getReturn(); // 输出协程中使用 return 返回的值

在上面的示例中,我们定义了一个名为 myCoroutine 的协程函数,其中使用了 yield 关键字返回了两个值,最后使用 return 返回了一个结束标记。

然后,我们创建了一个 Fiber 对象,并将 myCoroutine 函数作为参数传递给它。接下来,我们调用了 start() 方法来启动协程。

在一个循环中,我们使用 status() 方法检查协程的状态是否为 STATUS_SUSPENDED,如果是,则表示协程还未执行完毕。在循环中,我们使用 getCurrent() 方法获取当前协程中使用 yield 返回的值,并将其输出。

当协程执行完毕后,我们使用 getReturn() 方法获取协程中使用 return 返回的值,并将其输出。在上面的示例中,getReturn() 方法将输出字符串 'Finished'

请注意,Fiber 类是在 PHP 8.1.0 中引入的,因此只有在该版本或更高版本的 PHP 中才能使用 Fiber::getReturn() 方法。

补充纠错
上一个函数: Fiber::isRunning()函数
下一个函数: Fiber::getCurrent()函数
热门PHP函数
分享链接