PHP函数名:EvTimer::set()
适用版本:此函数适用于PHP版本5.3.0及以上,并且需要安装libev扩展。
用法:EvTimer::set()函数用于设置定时器的回调函数和触发时间间隔。
语法:bool EvTimer::set(float $after, float $repeat, callable $callback, mixed $data = NULL)
参数:
- $after:定时器的第一个触发时间延迟,单位为秒(可以是浮点数,支持毫秒级别的精度)。
- $repeat:定时器的触发时间间隔,单位为秒(可以是浮点数,支持毫秒级别的精度)。
- $callback:表示定时器触发时要执行的回调函数。可以使用匿名函数或普通函数。
- $data:(可选)表示传递给回调函数的额外参数。
返回值:成功设置定时器返回true,否则返回false。
示例:
// 创建一个libev事件循环
$loop = new EvLoop();
// 定义回调函数
function myTimerCallback($w, $revents) {
echo "定时器触发\n";
// 在回调函数中可执行任何你想要的操作
}
// 创建一个定时器对象并设置参数
$timer = EvTimer::set(2.5, 0.5, 'myTimerCallback');
// 将定时器加入事件循环
ev_timer_start($loop, $timer);
// 进入事件循环,等待定时器触发
ev_loop($loop);
// 当脚本执行到此处时,定时器已经触发,并执行了回调函数
上述示例中,我们创建了一个libev事件循环,然后定义了一个名为myTimerCallback的回调函数。接着,通过EvTimer::set()函数设置了一个定时器,指定了第一个触发时间延迟为2.5秒,触发时间间隔为0.5秒,并传入了回调函数myTimerCallback。
最后,我们将定时器加入事件循环并启动事件循环,当时间达到设定的触发时间时,定时器会触发回调函数myTimerCallback,并在控制台输出"定时器触发"。