函式名稱: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() 方法。
熱門工具排行榜