Home >Backend Development >PHP Tutorial >最近开发zen cart有些问题想咨询下!

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

WBOY
WBOYOriginal
2016-06-23 14:22:00950browse

最近在用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 适用于调度的,也不推荐这种写法。太隐晦了

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn