查詢

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函式
分享連結