函数名: 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()
方法来停止定时器的执行。