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