Signatur
Beschreibung
swoole_timer_exists() ist eine Funktion der Swoole-Erweiterung und ermöglicht es zu überprüfen, ob ein zuvor mit swoole_timer_after() oder swoole_timer_tick() angelegter Timer noch aktiv ist. Als Parameter wird die numerische Timer-ID übergeben, die bei der Erstellung des Timers zurückgegeben wurde.
Diese Funktion ist besonders nützlich in asynchronen Swoole-Applikationen, wenn man sicherstellen möchte, dass ein Timer nicht bereits abgelaufen oder manuell mit swoole_timer_clear() gelöscht wurde, bevor man weitere Operationen darauf ausführt.
Gibt true zurück, wenn der Timer noch existiert und seine Callback-Funktion aktiv ist, andernfalls false. Wird eine ungültige oder bereits gelöschte Timer-ID übergeben, ist der Rückgabewert ebenfalls false.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $timer_id Pflicht | int | Die numerische ID des Timers, die von swoole_timer_after() oder swoole_timer_tick() zurückgegeben wurde. |
Rückgabewert
true zurück, wenn der Timer mit der angegebenen ID noch aktiv ist und dessen Callback existiert. Gibt false zurück, wenn der Timer nicht (mehr) existiert oder eine ungültige ID übergeben wurde.Beispiele
Prüfen, ob ein Tick-Timer noch aktiv ist
<?php
// Swoole-Erweiterung wird vorausgesetzt
$timerId = swoole_timer_tick(1000, function () {
echo "Timer läuft..." . PHP_EOL;
});
// Prüfen, ob der Timer noch aktiv ist
if (swoole_timer_exists($timerId)) {
echo "Timer #{$timerId} ist noch aktiv." . PHP_EOL;
} else {
echo "Timer #{$timerId} existiert nicht mehr." . PHP_EOL;
}
// Timer löschen
swoole_timer_clear($timerId);
// Erneut prüfen
if (swoole_timer_exists($timerId)) {
echo "Timer #{$timerId} ist noch aktiv." . PHP_EOL;
} else {
echo "Timer #{$timerId} existiert nicht mehr." . PHP_EOL;
}
Einmaligen Timer auf Existenz prüfen
<?php
// Einmaliger Timer, der nach 500 ms feuert
$timerId = swoole_timer_after(500, function () {
echo "Einmaliger Timer ausgeführt." . PHP_EOL;
});
// Sofort prüfen: Timer sollte noch existieren
var_dump(swoole_timer_exists($timerId)); // bool(true)
// Nach manueller Löschung
swoole_timer_clear($timerId);
var_dump(swoole_timer_exists($timerId)); // bool(false)
// Wichtig · Fallstricke
Hinweis: swoole_timer_exists() ist nur innerhalb eines laufenden Swoole-Event-Loops sinnvoll einsetzbar. Außerhalb eines Swoole-Servers oder -Coroutine-Kontexts ist die Verwendung nicht empfohlen.
Da Swoole nicht Teil der Standard-PHP-Distribution ist, muss die swoole-Erweiterung separat installiert und aktiviert sein. Die verfügbaren Timer-Funktionen und ihr Verhalten können je nach Swoole-Version leicht variieren.