Event::setTimer()

设置一个定时器事件

首字母:E

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扩展。

同首字母函数