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

WBOY
Freigeben: 2016-06-23 14:22:00
Original
921 Leute haben es durchsucht

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

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage