PHP Conference Kansai 2025

Fiber::isRunning

(PHP 8 >= 8.1.0)

Fiber::isRunning确认 fiber 是否正在运行

说明

public Fiber::isRunning(): bool

参数

此函数没有参数。

返回值

仅在 fiber 运行时返回 true。在调用 Fiber::start()Fiber::resume()Fiber::throw() 还没有返回之后,将认为 fiber 正在运行。如果 fiber 没有运行则返回 false

添加备注

用户贡献的备注 1 note

up
0
booleantype1990 at gmail dot com
2 days ago
Fiber::isRunning() will only return true if you call it from within a Fiber while it is running.

<?php
$fiber
= new Fiber(function ($fiber) {
echo
"Inside Fiber. isRunning: ";
var_dump($fiber->isRunning()); // Here is true

Fiber::suspend();

echo
"Inside Fiber again after resume(). isRunning: ";
var_dump($fiber->isRunning()); // true again
});

echo
"Before Fiber launch. isRunning: ";
var_dump($fiber->isRunning()); // Here is false

$fiber->start($fiber);

echo
"After suspend. isRunning: ";
var_dump($fiber->isRunning()); // Here is false

$fiber->resume();

echo
"After resume. isRunning: ";
var_dump($fiber->isRunning()); // Here is false
?>

Result:
Before Fiber launch. isRunning: bool(false)
Inside Fiber. isRunning: bool(true)
After suspend. isRunning: bool(false)
Inside Fiber again after resume(). isRunning: bool(true)
After resume. isRunning: bool(false)
To Top