函式名: EvLoop::timer()
適用版本: PHP 5 >= 5.4.0, pecl ev >= 0.2.0
函式描述: 建立一個定時器並將其新增到事件迴圈中。
用法: EvWatcher EvLoop::timer ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
引數:
- $after: 定時器在多長時間後觸發第一次執行回撥函式(以秒為單位)。可以為小數,表示以毫秒為單位。
- $repeat: 定時器重複執行的間隔時間(以秒為單位)。可以為小數,表示以毫秒為單位。如果為0,則只執行一次。
- $callback: 定時器觸發時要執行的回撥函式。
- $data (可選): 傳遞給回撥函式的附加資料。
- $priority (可選): 定時器的優先順序,預設為0。數值越小,優先順序越高。
返回值: 返回一個EvWatcher物件,可以用於取消或修改定時器。
示例:
$loop = new EvLoop();
// 建立定時器
$timer = $loop->timer(2, 1, function ($watcher, $revents) {
echo "定時器觸發\n";
});
// 開始事件迴圈
$loop->run();
// 取消定時器
$timer->stop();
在上面的示例中,我們建立了一個定時器,在2秒後首次觸發,之後每隔1秒觸發一次。回撥函式只是簡單地列印出一條訊息。然後我們啟動了事件迴圈,並透過呼叫stop()
方法來停止定時器的執行。