English | 简体中文 | 繁體中文
查询

Event::setTimer()函数—用法及示例

「 设置一个定时器事件 」


PHP Event::setTimer()函数用于设置一个定时器事件。它在指定的间隔后触发一个回调函数,并且可以重复触发多次。该函数是基于libevent库的PHP扩展提供的。

用法:

bool Event::setTimer(float $interval, callable $callback, mixed $arg = null): bool

参数:

  • $interval:定时器触发的间隔时间,以秒为单位。可以是浮点数,表示毫秒级别的间隔。
  • $callback:回调函数,当定时器事件触发时被调用。回调函数的原型应为 function(Event $event, mixed $arg): void
  • $arg(可选):回调函数的参数,将会传递给回调函数作为第二个参数。

返回值:

  • 设置定时器成功返回 true,否则返回 false。

示例:

$base = new EventBase();
$timerEvent = new Event($base);

// 定义回调函数
$callback = function (Event $event, $arg) {
    echo "Timer event triggered\n";
};

// 设置定时器事件
if ($timerEvent->setTimer(2.5, $callback, "example") === true) {
    echo "Timer set successfully\n";
}

// 在事件循环中运行
$base->loop();

在上面的示例中,我们首先创建了一个EventBase对象和一个Event对象来管理事件循环。然后我们定义了一个回调函数,在每次定时器事件触发时打印一条消息。接下来,我们使用setTimer()函数设置了一个定时器,间隔为2.5秒,并将回调函数的参数设置为字符串"example"。最后,通过调用EventBase对象的loop()方法开始事件循环,等待定时器事件的触发。

请注意,使用Event::setTimer()函数之前,你需要先安装并启用libevent扩展。

补充纠错
上一个函数: Event::set()函数
下一个函数: Event::signal()函数
热门PHP函数
分享链接