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