查詢

Event::setTimer()函式—用法及示例

「 設定一個定時器事件 」


PHP Event::setTimer()函式用於設定一個定時器事件。它在指定的間隔後觸發一個回撥函式,並且可以重複觸發多次。該函式是基於libevent庫的PHP擴充套件提供的。

用法:

bool Event::setTimer(float $interval, callable $callback, mixed $arg = null): bool

引數:

  • $interval:定時器觸發的間隔時間,以秒為單位。可以是浮點數,表示毫秒級別的間隔。
  • $callback:回撥函式,當定時器事件觸發時被呼叫。回撥函式的原型應為 function(Event $event, mixed $arg): void
  • $arg(可選):回撥函式的引數,將會傳遞給回撥函式作為第二個引數。

返回值:

  • 設定定時器成功返回 true,否則返回 false。

示例:

$base = new EventBase();
$timerEvent = new Event($base);

// 定義回撥函式
$callback = function (Event $event, $arg) {
    echo "Timer event triggered\n";
};

// 設定定時器事件
if ($timerEvent->setTimer(2.5, $callback, "example") === true) {
    echo "Timer set successfully\n";
}

// 在事件迴圈中執行
$base->loop();

在上面的示例中,我們首先建立了一個EventBase物件和一個Event物件來管理事件迴圈。然後我們定義了一個回撥函式,在每次定時器事件觸發時列印一條訊息。接下來,我們使用setTimer()函式設定了一個定時器,間隔為2.5秒,並將回撥函式的引數設定為字串"example"。最後,透過呼叫EventBase物件的loop()方法開始事件迴圈,等待定時器事件的觸發。

請注意,使用Event::setTimer()函式之前,你需要先安裝並啟用libevent擴充套件。

補充糾錯
上一個函式: Event::set()函式
下一個函式: Event::signal()函式
熱門PHP函式
分享連結