PHP Conference Kansai 2025

Fiber::getCurrent

(PHP 8 >= 8.1.0)

Fiber::getCurrent获取当前正在执行的 Fiber 实例

说明

public static Fiber::getCurrent(): ?Fiber

参数

此函数没有参数。

返回值

返回当前正在执行的 Fiber 实例,如果在 Fiber 外部调用此方法,则返回 null

添加备注

用户贡献的备注 1 note

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

<?php
$fiber
= new Fiber(function () {
echo
"Inside Fiber. getCurrent: ";
var_dump(Fiber::getCurrent()); // Here is object(Fiber)#1 (0) { }

Fiber::suspend();

echo
"Inside Fiber again after resume(). getCurrent: ";
var_dump(Fiber::getCurrent()); // object(Fiber)#1 (0) { } again
});

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

$fiber->start();

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

$fiber->resume();

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

Result:
Before Fiber launch. getCurrent: NULL
Inside Fiber. getCurrent: object(Fiber)#1 (0) {}
After suspend. getCurrent: NULL
Inside Fiber again after resume(). getCurrent: object(Fiber)#1 (0) {}
After resume. getCurrent: NULL
To Top