函式名稱:Event::addTimer()
函式說明:Event::addTimer() 函式用於向事件迴圈中新增一個計時器,用於在指定時間後觸發回撥函式。
引數:
- float $timeout:計時器的觸發時間,單位為秒(支援小數)。
- callable $callback:計時器觸發時要呼叫的回撥函式。
- mixed $arg = NULL:可選引數,用於傳遞給回撥函式的引數。
返回值:返回一個計時器物件(EventTimer)。
注意事項:
- 該函式必須在事件迴圈執行之前呼叫,否則計時器不會生效。
- 回撥函式可以是一個閉包函式(匿名函式)或者一個已經宣告的函式。
- 回撥函式的簽名必須接受一個引數,該引數會接收傳遞給 Event::addTimer() 函式的第三個引數。
示例程式碼:
// 建立一個全域性事件基礎(event_base)物件
$eventBase = new EventBase();
// 建立一個計時器觸發後執行的回撥函式
$callback = function ($timer) {
echo "Timer callback executed\n";
// 可以在回撥函式中進行一些特定的操作
}
// 向事件迴圈中新增一個計時器
$timer = Event::addTimer($eventBase, 5.0, $callback);
// 開始事件迴圈
$eventBase->loop();
以上示例程式碼建立了一個全域性事件基礎物件($eventBase),然後建立了一個回撥函式($callback),回撥函式在計時器觸發後會被執行。接下來,使用 Event::addTimer() 函式向事件迴圈中新增了一個計時器,設定了觸發時間為 5 秒。最後,透過呼叫 $eventBase->loop() 方法開始事件迴圈,當計時器觸發時,回撥函式將會被執行,輸出 "Timer callback executed"。