函數(shù)名稱:Fiber::getReturn()
適用版本:PHP 8.1.0 或更高版本
函數(shù)描述:Fiber::getReturn() 方法用于獲取在協(xié)程中使用 yield 關(guān)鍵字返回的值。
用法示例:
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; // 輸出協(xié)程中的 yield 值
$fiber->resume();
}
echo $fiber->getReturn(); // 輸出協(xié)程中使用 return 返回的值
在上面的示例中,我們定義了一個名為 myCoroutine
的協(xié)程函數(shù),其中使用了 yield
關(guān)鍵字返回了兩個值,最后使用 return
返回了一個結(jié)束標(biāo)記。
然后,我們創(chuàng)建了一個 Fiber
對象,并將 myCoroutine
函數(shù)作為參數(shù)傳遞給它。接下來,我們調(diào)用了 start()
方法來啟動協(xié)程。
在一個循環(huán)中,我們使用 status()
方法檢查協(xié)程的狀態(tài)是否為 STATUS_SUSPENDED
,如果是,則表示協(xié)程還未執(zhí)行完畢。在循環(huán)中,我們使用 getCurrent()
方法獲取當(dāng)前協(xié)程中使用 yield
返回的值,并將其輸出。
當(dāng)協(xié)程執(zhí)行完畢后,我們使用 getReturn()
方法獲取協(xié)程中使用 return
返回的值,并將其輸出。在上面的示例中,getReturn()
方法將輸出字符串 'Finished'
。
請注意,Fiber
類是在 PHP 8.1.0 中引入的,因此只有在該版本或更高版本的 PHP 中才能使用 Fiber::getReturn()
方法。