LittleBai117

LittleBai117

这家伙有点懒,还没写个性签名!

  • 财富值195
  • 威望值0
  • 总积分255

个人信息

  • 2017-09-12 已签到
    连续签到2天,获得了10个金钱
  • 2017-09-11 已签到
    连续签到1天,获得了5个金钱
  • 2017-09-08 已签到
    连续签到2天,获得了10个金钱
  • 2017-09-07 已签到
    连续签到1天,获得了5个金钱
  • 2017-08-22 已签到
    连续签到1天,获得了5个金钱
  • 回复了 的回复

    挺不错的,但是$removed是不能去掉的,否则只等于一次,直接就return true了,而原代码可能会删除好多个。而且多次array_splice会比array_values高吗?并不一定吧。

     foreach (self::$_events[$name][$class] as $i => $event){
                if($event[0] === $handler){
                    array_splice(self::$_events[$name][$class], $i, 1);
                    return true;//直接就跳出了
                }
            }
            return false;
    

    确实,$removed是不能去掉的。如果考虑会有删除多个绑定事件的情况,那我觉得还是源码比较高效,最后进行一次排序。而我改的,是在每次删除后都排序,性能应该差点。(最近在忙公司的项目,没有继续看源码,后续会再深挖下这块的源码)
    谢谢,您的互动,学习到了。

  • 发布了话题
    yii2中yii\base\event中可改良之处
见习主管 等级规则
255/500
资料完整度
10/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

0

Ta的访客

1