组件Scope::isClosed

Scope::isClosed ​

(PHP 8.6+, True Async 1.0)

php
public function isClosed(): bool

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

返回值 ​

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

示例 ​

示例 #1 检查作用域状态 ​

php
<?php

use Async\Scope;

$scope = new Scope();

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

$scope->dispose();

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

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

php
<?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";
}

参见 ​