我正在读Joomla大师! 1.5本书,我在Revue模型中注意到有这样的功能
// model
function getRevues() {
$db =& $this->_db;
if( empty($this->_revues) ) // ?????
{
$query = $this->_buildQuery();
$limitstart = $this->getState('limitstart');
$limit = $this->getState('limit');
$this->_revues = $this->_getLimit($query, $limitstart, $limit);
}
return $this->_revues;
}
// view
....
revues =& model->getRevues();
为什么在类模型中使用_revues变量?如果我删除_revues变量并重写getRevues函数,如下所示:
function getRevues() {
$db =& $this->_db;
$query = $this->_buildQuery();
$limitstart = $this->getState('limitstart');
$limit = $this->getState('limit');
$revues = $this->_getLimit($query, $limitstart, $limit);
return &$revues;
}
2个功能有什么区别?
答案 0 :(得分:2)
在第二个中,您始终执行数据库查询。在第一个中,您缓存结果(在$this->_revues
中),这可能会提高应用程序的性能。因此,只有在第一次调用此方法时才会触发数据库。