函数名: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 版本中无法使用该函数。
热门工具排行榜