2013-05-12 59 views
0

通过$此加载功能时,当我使用像这样一类内调用函数中使用变量:无法在笨

protected $_mdl = 'mdl_posts_latest'; 

function __construct() 
{ 
    parent::__construct(); 
    $this->load->model($this->$_mdl); 
} 

public function index() 
{ 
    $offset = 0; 
    $limit = 5; 
    $data['p_latest'] = $this->mdl_posts_latest->get_posts_latest($offset, $limit); 
    ... 
    ... 
    ... 
    . 

,它是工作。

问题是,当我RY是这样的:

$data['p_latest'] = $this->$this->$_mdl->get_posts_latest($offset, $limit); 

它抛出这个错误:

类Posts_latest的对象不能转换为字符串

,因为,很明显,此代码是错误的:$this->$this->$_mdl->

因此,我的问题是我如何才能在我的课程顶部定义一次我的模型的名称,然后将其用作所有调用函数的调用中的变量等。

因为现在我不知道该怎么做它,所以它看起来像什么:

$this->$model->get_something(); 

回答

1

当你加载模型,你应该像这样访问的成员变量,没有$成员变量的名字前面:

$this->load->model($this->_mdl); 

你可以看看PHP的variable variablescomplex (curly) syntax。它可以让你做这样的事情,在那里你可以使用变量的值:

$this->{'_mdl'}->get_posts_latest($offset, $limit); 
-1
$this->load->model($_mdl); 

,而不是

$this->load->model($this->$_mdl); 

则:

$data['p_latest'] = $this->$_mdl->get_posts_latest($offset, $limit); 

$md1 = $this->$_md1; 
$data['p_latest'] = $md1->get_posts_latest($offset, $limit);