函式名: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)
解釋:
- 首先,我們建立了一個 Fiber 物件,該物件包含了一個匿名函式作為 Fiber 的執行體。
- 在開始執行 Fiber 之前,我們使用 Fiber::isRunning() 函式檢查當前 Fiber 是否正在執行。由於 Fiber 還沒有開始執行,所以返回值為 false。
- 接著,我們呼叫 $fiber->start() 方法來啟動 Fiber 的執行。此時,Fiber 開始執行,並輸出 "Fiber started"。
- 再次使用 Fiber::isRunning() 函式檢查當前 Fiber 是否正在執行。由於 Fiber 正在執行中,所以返回值為 true。
- 最後,我們呼叫 $fiber->resume() 方法來恢復 Fiber 的執行。Fiber 繼續執行,並輸出 "Fiber resumed"。
- 再次使用 Fiber::isRunning() 函式檢查當前 Fiber 是否正在執行。由於 Fiber 已經執行完畢,所以返回值為 false。