无法在定时器中跳出判断

18829520602

问题描述

这里写问题描述
在定时器中写入判断当传入的参数大于某一个值的时候执行指定代码,但是如果这个传入的参数长时间大于某一个值那就得一直执行指定代码,这不是我想要的效果,我希望当传入的参数即使长时间大于指定的某个值
我们只执行三次指定代码

这里粘代码或配置
Timer::add(1, function() use ($num) {
                  if(num > 19){
        echo "报警异常"."\n\r";
//比如当num>19的时候我的echo语句最多执行三次、即使传入的Num依然大于19我也不执行了
}
});
544 3 0
3个回答

小W

那就Timer执行三次$num>19之后,del(定时器id)

  • 暂无评论
admin

这里粘代码或配置

Timer::add(1, function() use ($num) {
      if(num > 19){
        Timer::add(1, function() use ($num) {
            echo "报警异常1"."\n\r";
                Timer::add(1, function() use ($num) {
                    echo "报警异常2"."\n\r";
                    Timer::add(1, function() use ($num) {
                        echo "报警异常3"."\n\r";
                    },[],false);
                },[],false);
        },[],false);

    //比如当num>19的时候我的echo语句最多执行三次、即使传入的Num依然大于19我也不执行了
}
});
  • 18829520602 2022-12-02

    我试了还是不行,还是一直在打印输出

  • 小W 2022-12-02

    代码不全,不好判断啥原因

2548a

use 里面&$num

  • 暂无评论
年代过于久远,无法发表回答
🔝