查询

EvTimer::set()函数—用法及示例

「 设置定时器的回调函数和触发时间间隔 」


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,并在控制台输出"定时器触发"。

补充纠错
上一个函数: EvTimer::createStopped()函数
下一个函数: EvWatcher::clear()函数
热门PHP函数
分享链接