2012-04-08 26 views
3

我在Code Igniter應用程序中有這個控制器。一個值在構造函數中被初始化。爲什麼我不能傳遞在我的Code Igniter控制器的構造函數中初始化的值?

class Cat extends CI_Controller { 
    private $data = array(); 

    public function __construct() { 
     parent::__construct(); 
     $this->data['sound'] = "meow"; 
    }         
    public function index() { 
     $this->load->view('myCatPage', $data); 
    } 
} 

該視圖「views/myCatPage.php」看起來像這樣。很簡單。

<?= $sound ?> 

爲什麼PHP記錄這個錯誤?

Message: Undefined variable: sound 

我以爲發送這個變量作爲我送入視圖陣列($data)中的密鑰。 我試圖

$this->load->view('myCatPage', $this->data); 

但奇怪的是失敗了。

+1

我不熟悉的代碼點火器,但如果$的數據是一個關聯數組,這將需要$數據[「聲音」] – thescientist 2012-04-08 20:03:39

+1

@thescientist沒有它不會。在CI中,如果控制器中的$ data ['sound'] =='meow'意味着在視圖 – novato 2012-04-08 23:24:52

+0

@thescientist中'$ sound =='meow',這是因爲'CI'提取視圖中的數組。 – 2012-04-08 23:26:53

回答

9
class Cat extends CI_Controller { 
    var $data = array(); 
    public function __construct() { 
     parent::__construct(); 
     $this->data['sound'] = "meow"; 
    }         
    public function index() { 
     $this->load->view('myCatPage', $this->data); 
    } 
} 
+0

謝謝!這樣可行! – 2012-04-16 20:06:33

+0

不客氣:-) – 2012-04-16 20:07:12

相關問題