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

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

「 创建一个新的 EvTimer 对象,并将其与指定的回调函数和定时器间隔关联起来 」


PHP函数名:EvTimer::__construct()

函数描述:EvTimer::__construct() 是一个构造函数,用于创建一个新的 EvTimer 对象,并将其与指定的回调函数和定时器间隔关联起来。

用法:

__construct ( float $after , float $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

参数:

  • $after:表示定时器首次触发的延迟时间,单位为秒。
  • $repeat:表示定时器重复触发的时间间隔,单位为秒。
  • $callback:表示回调函数,当定时器触发时被调用。
  • $data:可选参数,传递给回调函数的额外数据。
  • $priority:可选参数,表示定时器的优先级,数值越低优先级越高。

示例:

// 创建一个定时器,每隔2秒执行一次回调函数
function timerCallback($timer, $repeats) {
    echo "Timer callback is called\n";
    
    if ($repeats == 0) {
        // 取消定时器
        $timer->clear();
    }
}

$loop = EvLoop::defaultLoop();

$timer = new EvTimer(0, 2, 'timerCallback', false, 1);
// 参数说明:
// - 延迟时间为0秒,立即执行
// - 重复触发时间间隔为2秒
// - 回调函数为 timerCallback
// - 额外数据为 false
// - 优先级为1

$loop->run();

注意事项:

  • $after 和 $repeat 参数值可以为小数,表示毫秒级别的精度。
  • 回调函数可以是函数名字的字符串,也可以是符合调用标准的闭包函数。
  • $priority 参数默认为0,表示普通优先级。可以设置为负数或正数来调整优先级。
  • 调用 $timer->clear() 方法可以在回调函数内部取消定时器。
  • 定时器对象可以通过 $timer->again() 方法重新启动已经取消的定时器。
补充纠错
上一个函数: EvWatcher::feed()函数
下一个函数: EvWatcher::getLoop()函数
热门PHP函数
分享链接