函数名称:ReflectionFiber::getExecutingLine()
适用版本:PHP 8.1.0 及以上版本
函数说明:ReflectionFiber::getExecutingLine() 用于获取当前正在执行的协程的行号。
语法:public ReflectionFiber::getExecutingLine(): int|false
参数:无
返回值:返回一个整数,表示当前正在执行的协程的行号。如果无法获取行号,返回 false。
示例:
<?php
function myCoroutine() {
echo "Coroutine started\n";
yield;
echo "Coroutine resumed\n";
}
$fiber = new Fiber('myCoroutine');
$fiber->start();
$reflection = new ReflectionFiber($fiber);
$line = $reflection->getExecutingLine();
if ($line !== false) {
echo "Currently executing at line: " . $line . "\n";
} else {
echo "Failed to retrieve the executing line\n";
}
?>
输出结果:
Coroutine started
Currently executing at line: 3
在上面的示例中,我们创建了一个协程函数 myCoroutine()
,它会输出一些文本并暂停执行。然后,我们创建了一个 Fiber
对象,并调用 start()
方法来启动协程。
接下来,我们使用 ReflectionFiber
类来获取当前正在执行的协程的行号。通过调用 getExecutingLine()
方法,我们可以获得当前正在执行的协程的行号。在这个示例中,行号为 3。
请注意,要使用 ReflectionFiber
类和相关方法,你的 PHP 版本必须为 8.1.0 或更高版本。