/**
* 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,虽然评论很明确,但仍有一些问题:
$instance = self::getInstance();
这条线在这里意味着什么? $instance->lazyLoad;
我找不到这个方法的声明:lazyLoad,它还是Zend文件吗?$instance->offsetGet($index)
,我在 SPL.php 中看到了它的声明,它是:public function offsetGet ($index) {}
,但{}内部是空的,那么这个功能如何? 答案 0 :(得分:0)
以下是关于你的三个问题的一些简要说明
<强> 1。 $ instance = self :: getInstance();这条线在这里意味着什么?
答案1。 getInstance方法用于获取该类实例而不执行$ test = new class_name(); getInstance方法是静态的,因此您可以在不声明新的class_name()的情况下获取该类实例; 在getInstance方法中,它的检查是否设置了_instance?如果没有设置,则创建自己的类实例,然后返回该实例。
<强> 2。 $实例 - &GT; lazyLoad;我找不到这个方法的声明:lazyLoad,它还是Zend文件吗?
回答2。你可以从下面的链接了解lazyload,这样你就可以更好地了解lazyload。 Link
第3。 $ instance-&gt; offsetGet($ index),我在SPL.php中看到它的声明,它是:public function offsetGet($ index){},但它在{}里面是空的,那么这个函数怎么样?
回答3. 此方法可以从Zend_Registry类型的对象中调用,也可以静态调用。在后一种情况下,它使用存储在类中的默认静态实例。
参数: string $ index - 获取与$ index关联的值 返回: 杂 例外: 如果没有为$ index注册任何条目,则为Zend_Exception。
请告诉我,如果我可以帮助你更多..