2013-04-18 4 views
0
/** 
    * getter method, basically same as offsetGet(). 
    * 
    * This method can be called from an object of type Zend_Registry, or it 
    * can be called statically. In the latter case, it uses the default 
    * static instance stored in the class. 
    * 
    * @param string $index - get the value associated with $index 
    * @return mixed 
    * @throws Zend_Exception if no entry is registerd for $index. 
    */ 
public static function get($index) 
    { 
     $instance = self::getInstance(); 

     if (!$instance->offsetExists($index)) 
     { 
      if ($instance->lazyLoad($index, $return)) 
      { 
       return $return; 
      } 
      else 
      { 
       throw new Zend_Exception("No entry is registered for key '$index'"); 
      } 
     } 

     return $instance->offsetGet($index); 
    } 
... 
public static function getDb() 
    { 
     return self::get('db'); 
    } 

... 

Это берется из XenForo/application.php, Хотя комментарий ясен, но все еще есть некоторые вопросы:пытаются понять некоторые функции, связанные с ZEND

  1. $instance = self::getInstance(); что это значит здесь эта линия?
  2. $instance->lazyLoad; Я не смог найти объявление этого метода: lazyLoad, это также файл Zend?
  3. $instance->offsetGet($index), я видел его заявление в SPL.php, это:
    public function offsetGet ($index) {}, но он пустой внутри {}, так как же эта функция?
+0

'get' берется из Zend/registry.php – danronmoon

ответ

0

Вот некоторое краткое объяснение о вашем вопросе У троих

1. $ экземпляр = само :: деЫпзЬапса(); что здесь означает эта линия?

Ответ 1. Метод getInstance используется для получения этого экземпляра класса без выполнения $ test = new class_name(); Метод getInstance является статическим, поэтому вы можете получить этот экземпляр класса без объявления нового класса_имя(); В методе getInstance его проверка установлена ​​_instance? если не задано, создайте собственный экземпляр класса и затем верните этот экземпляр.

2. $ instance-> lazyLoad; Я не смог найти объявление этого метода: lazyLoad, это также файл Zend?

Ответ 2. вы можете понять о lazyload из-под ссылки, чтобы у вас было лучшее представление о lazyload. Link

3. $ instance-> offsetGet ($ индекс), я видел его заявление в SPL.php, это: функция offsetGet общественности ($ индекс) {}, но он пустой внутри {}, так как выполняет ли эта функция?

Ответ 3. Этот метод можно вызвать из объекта типа Zend_Registry или его можно назвать статическим. В последнем случае он использует статический экземпляр по умолчанию, хранящийся в классе.

Параметры: строки $ индекс - получить значение, связанное с $ индексных Возврата: смешанных Исключения: Zend_Exception если запись не зарегистрированная за $ индекса.

пожалуйста, дайте мне знать, если я мог бы помочь вам больше ..

+0

Спасибо за вашу помощь. Это помогает мне лучше понять это, может потребоваться время, чтобы полностью понять. – user2243528

Смежные вопросы