Fiber::isStarted()

检查一个协程是否已经开始执行

首字母:F

函数名:Fiber::isStarted()

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

用法:Fiber::isStarted() 函数用于检查一个协程是否已经开始执行。

示例:

function myCoroutine() {
 echo "Coroutine started\n";
 Fiber::yield();
 echo "Coroutine resumed\n";
}
$fiber = new Fiber('myCoroutine');
echo "Is fiber started? " . (Fiber::isStarted($fiber) ? "Yes" : "No") . "\n"; // 输出: Is fiber started? No
$fiber->start();
echo "Is fiber started? " . (Fiber::isStarted($fiber) ? "Yes" : "No") . "\n"; // 输出: Is fiber started? Yes
$fiber->resume();

在上面的示例中,首先创建了一个名为 myCoroutine 的协程函数。然后,通过 new Fiber('myCoroutine') 创建了一个 Fiber 对象,并将其赋值给变量 $fiber。接着,通过调用 Fiber::isStarted($fiber) 检查协程是否已经开始执行,此时返回值为 false,因为协程还未开始。然后,通过调用 $fiber->start() 启动协程,再次调用 Fiber::isStarted($fiber) 检查协程是否已经开始执行,此时返回值为 true,因为协程已经开始执行。

请注意,Fiber 类是在 PHP 8.1.0 版本中引入的,因此在较旧的 PHP 版本中无法使用该函数。

同首字母函数