English | 简体中文 | 繁體中文
查询

Fiber::resume()函数—用法及示例

「 从挂起的 Fiber 中恢复执行,并返回挂起点处的值 」


函数名称:Fiber::resume()

适用版本:PHP 8.1.0 及以上版本

函数描述:Fiber::resume() 函数用于从挂起的 Fiber 中恢复执行,并返回挂起点处的值。

用法:

  1. 创建 Fiber 对象:

    $fiber = new Fiber(function() {
        echo "Fiber started\n";
        Fiber::suspend("Fiber suspended"); // 挂起 Fiber 并传递挂起点的值
        echo "Fiber resumed\n";
        return "Fiber completed";
    });
    
  2. 恢复执行 Fiber:

    $value = $fiber->resume(); // 恢复 Fiber 的执行,并获取挂起点的值
    echo $value; // 输出: "Fiber suspended"
    
  3. 再次恢复执行 Fiber:

    $value = $fiber->resume("Fiber resumed"); // 恢复 Fiber 的执行,并传递新的挂起点的值
    echo $value; // 输出: "Fiber completed"
    

示例解释: 以上示例中,我们首先创建了一个 Fiber 对象,并在其构造函数中定义了一个匿名函数作为 Fiber 的执行体。在匿名函数中,我们首先输出 "Fiber started",然后通过 Fiber::suspend() 函数将 Fiber 挂起,并传递了挂起点的值 "Fiber suspended"。接着,我们使用 $fiber->resume() 方法来恢复 Fiber 的执行,并将挂起点的值赋给 $value 变量,最后输出了 $value 的值。

在第三部分中,我们再次使用 $fiber->resume() 方法来恢复 Fiber 的执行,并传递了新的挂起点的值 "Fiber resumed"。同样地,我们将恢复后的 Fiber 的返回值赋给 $value 变量,并输出了 $value 的值。

需要注意的是,Fiber::resume() 函数只能在 Fiber 对象的状态为 "suspended" 时调用,否则会抛出异常。

补充纠错
上一个函数: Fiber::start()函数
下一个函数: Fiber::isTerminated()函数
热门PHP函数
分享链接