函数名称: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()
方法。