函數(shù)名: EvLoop::timer()
適用版本: PHP 5 >= 5.4.0, pecl ev >= 0.2.0
函數(shù)描述: 創(chuàng)建一個定時器并將其添加到事件循環(huán)中。
用法: EvWatcher EvLoop::timer ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
參數(shù):
- $after: 定時器在多長時間后觸發(fā)第一次執(zhí)行回調(diào)函數(shù)(以秒為單位)??梢詾樾?shù),表示以毫秒為單位。
- $repeat: 定時器重復(fù)執(zhí)行的間隔時間(以秒為單位)??梢詾樾?shù),表示以毫秒為單位。如果為0,則只執(zhí)行一次。
- $callback: 定時器觸發(fā)時要執(zhí)行的回調(diào)函數(shù)。
- $data (可選): 傳遞給回調(diào)函數(shù)的附加數(shù)據(jù)。
- $priority (可選): 定時器的優(yōu)先級,默認為0。數(shù)值越小,優(yōu)先級越高。
返回值: 返回一個EvWatcher對象,可以用于取消或修改定時器。
示例:
$loop = new EvLoop();
// 創(chuàng)建定時器
$timer = $loop->timer(2, 1, function ($watcher, $revents) {
echo "定時器觸發(fā)\n";
});
// 開始事件循環(huán)
$loop->run();
// 取消定時器
$timer->stop();
在上面的示例中,我們創(chuàng)建了一個定時器,在2秒后首次觸發(fā),之后每隔1秒觸發(fā)一次?;卣{(diào)函數(shù)只是簡單地打印出一條消息。然后我們啟動了事件循環(huán),并通過調(diào)用stop()
方法來停止定時器的執(zhí)行。