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
6 months 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