Coroutine::getId

(PHP 8.6+, True Async 1.0)

public Coroutine::getId(): int

Повертає унікальний цілочисельний ідентифікатор корутини. Ідентифікатор є унікальним у межах поточного процесу PHP.

Значення, що повертається

int – унікальний ідентифікатор корутини.

Приклади

Приклад #1 Базове використання

<?php

use function Async\spawn;

$coroutine1 = spawn(function() {
    return "task 1";
});

$coroutine2 = spawn(function() {
    return "task 2";
});

$id1 = $coroutine1->getId();
$id2 = $coroutine2->getId();

var_dump(is_int($id1));     // bool(true)
var_dump($id1 !== $id2);    // bool(true)

Приклад #2 Логування з ідентифікатором

<?php

use function Async\spawn;

function loggedTask(string $name): \Async\Coroutine {
    return spawn(function() use ($name) {
        $id = \Async\current_coroutine()->getId();
        echo "[coro:$id] Task '$name' started\n";
        \Async\delay(1000);
        echo "[coro:$id] Task '$name' completed\n";
    });
}

Дивіться також