事件解除方法 Event::off( ),里面的判断是否必要? [ 2.0 版本 ]
public function off($name, $handler = null)
{
$this->ensureBehaviors();
if (empty($this->_events[$name])) {
return false;
}
// $handler === null 时解除所有的handler
if ($handler === null) {
unset($this->_events[$name]);
return true;
} else {
$removed = false;
// 遍历所有的 $handler
foreach ($this->_events[$name] as $i => $event) {
if ($event[0] === $handler) {
unset($this->_events[$name][$i]);
$removed = true;
}
}
if ($removed) {
$this->_events[$name] = array_values($this->_events[$name]);
}
return $removed;
}
}
这个是源码, $removed最后的判断,是把自己的值再赋给自己。。为什么会这么写?
qway 补充于 2015-04-03 15:48
http://www.digpage.com/event.html#handler 这个网上的资源,看到这个问题。
共 1 个回答
qway 广州
注册时间:2015-01-23
最后登录:2015-05-22
在线时长:10小时40分
最后登录:2015-05-22
在线时长:10小时40分
- 粉丝1
- 金钱105
- 威望0
- 积分205