桃筱筱

桃筱筱

一生恰如三月花,看得见开始,猜不到结局...

  • 财富值18760
  • 威望值10
  • 总积分19990

个人信息

  • 2015-07-06 已签到
    连续签到9天,获得了20个金钱
  • 2015-07-05 已签到
    连续签到8天,获得了20个金钱
  • 2015-07-04 已签到
    连续签到7天,获得了20个金钱
  • 2015-07-03 已签到
    连续签到6天,获得了20个金钱
  • 2015-07-02 已签到
    连续签到5天,获得了20个金钱
  • 2015-07-01 已签到
    连续签到4天,获得了20个金钱
  • 赞了回答

    是这样的

    // this handler is a global function
    $foo->on(Foo::EVENT_HELLO, 'function_name');
    //全局函数不是系统函数的意思,就是你自己定义的函数,所以你调用的时候还是
    function function_name($event) {
        echo $event->data;
    }
    
    //你可以看看trigger是怎么调用callback function的
        public function trigger($name, Event $event = null)
        {
            $this->ensureBehaviors();
            if (!empty($this->_events[$name])) {
                if ($event === null) {
                    $event = new Event;
                }
                if ($event->sender === null) {
                    $event->sender = $this;
                }
                $event->handled = false;
                $event->name = $name;
                foreach ($this->_events[$name] as $handler) {
                    $event->data = $handler[1];  //on绑定传过来的数据
                    call_user_func($handler[0], $event);  //0是具体的函数,这里看出是没办法解决 系统函数参数的问题
                    // stop further handling if the event is handled
                    if ($event->handled) {
                        return;
                    }
                }
            }
            // invoke class-level attached handlers
            Event::trigger($this, $name, $event);
        }
    

    所以我的看法是应该不会直接绑定系统函数

  • @胖纸囧,路过,支持一下...

  • 在网上找个基础的视频,边看边学,很快就学会了!

  • 2015-06-30 已签到
    连续签到3天,获得了15个金钱
19990/20000
资料完整度
50/100
用户活跃度
0/100

Ta的关注

15

Ta的粉丝

16

Ta的访客

73