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);