首页 >后端开发 >php教程 >最近开发zen cart有些问题想咨询下!

最近开发zen cart有些问题想咨询下!

WBOY
WBOY原创
2016-06-23 14:22:00948浏览

最近在用zen cart商城系统做东西!看到了一下代码!
  function notify($eventID, $paramArray = array()) {
    $observers =  & base::getStaticObserver();
    if (!is_null($observers))
    {
      foreach($observers as $key=>$obs) {
        if ($obs['eventID'] == $eventID) {
          $obs['obs']->update($this, $eventID, $paramArray);
        }
      }
    }
  }

  function  & getStaticObserver() {
    return base::getStaticProperty('observer');
  }
在类里面每个function后面都会出现个& 是什么意思。
base::getStaticObserver()的意思应该是表示某类的方法!至于在前面加个&是引用么?
为什么在定义方法时也加个&
求大神详细解释下!


回复讨论(解决方案)

& 引用

第一处 表示得到的是一个引用
第二处 表示该方法将返回一个引用

最终,$observers 是 base::$observer 的引用
对 $observers 的任何修改都会影响到 base::$observer
进而会影响到所有使用 base::$observer 的行为

如果 base::$observer 不是用于调度的话,这种写法是不可取的
当然,即便 base::$observer 适用于调度的,也不推荐这种写法。太隐晦了

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn