查詢

Fiber::isRunning()函式—用法及示例

「 檢查當前的 Fiber 是否正在執行 」


函式名:Fiber::isRunning()

適用版本:PHP 8.1.0 及以上版本

用法:Fiber::isRunning() 函式用於檢查當前的 Fiber 是否正在執行。

示例:

$fiber = new Fiber(function() {
    echo "Fiber started\n";
    Fiber::suspend();
    echo "Fiber resumed\n";
});

echo "Before starting fiber\n";
var_dump(Fiber::isRunning($fiber)); // 輸出: bool(false)

$fiber->start();
echo "After starting fiber\n";
var_dump(Fiber::isRunning($fiber)); // 輸出: bool(true)

$fiber->resume();
echo "After resuming fiber\n";
var_dump(Fiber::isRunning($fiber)); // 輸出: bool(false)

解釋:

  1. 首先,我們建立了一個 Fiber 物件,該物件包含了一個匿名函式作為 Fiber 的執行體。
  2. 在開始執行 Fiber 之前,我們使用 Fiber::isRunning() 函式檢查當前 Fiber 是否正在執行。由於 Fiber 還沒有開始執行,所以返回值為 false。
  3. 接著,我們呼叫 $fiber->start() 方法來啟動 Fiber 的執行。此時,Fiber 開始執行,並輸出 "Fiber started"。
  4. 再次使用 Fiber::isRunning() 函式檢查當前 Fiber 是否正在執行。由於 Fiber 正在執行中,所以返回值為 true。
  5. 最後,我們呼叫 $fiber->resume() 方法來恢復 Fiber 的執行。Fiber 繼續執行,並輸出 "Fiber resumed"。
  6. 再次使用 Fiber::isRunning() 函式檢查當前 Fiber 是否正在執行。由於 Fiber 已經執行完畢,所以返回值為 false。
補充糾錯
上一個函式: FFI::new()函式
下一個函式: Fiber::getReturn()函式
熱門PHP函式
分享連結