Scope::isClosed

(PHP 8.6+, True Async 1.0)

public function isClosed(): bool

检查作用域是否已关闭。作用域在调用 dispose()disposeSafely() 后被视为已关闭。无法向已关闭的作用域添加新的协程。

返回值

bool — 如果作用域已关闭则返回 true,否则返回 false

示例

示例 #1 检查作用域状态

<?php

use Async\Scope;

$scope = new Scope();

var_dump($scope->isClosed()); // bool(false)

$scope->dispose();

var_dump($scope->isClosed()); // bool(true)

示例 #2 防止向已关闭的作用域添加协程

<?php

use Async\Scope;

$scope = new Scope();
$scope->dispose();

if (!$scope->isClosed()) {
    $scope->spawn(function() {
        echo "This coroutine will not be created\n";
    });
} else {
    echo "Scope is already closed\n";
}

参见