函数名: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 版本中无法使用该函数。