我的問題是使用Codeigniter自定義庫,但我認爲它不是特定於PHP的構造函數,更多與使用構造函數有關。 我試圖創建笨這樣的定製控制器庫...關於在PHP中使用構造函數的問題
class MY_Controller extends Controller {
var $data = array();
function MY_Controller() {
parent::Controller();
$this->data['err'] = 'no';
$this->load->helper('utilities');
}
}
現在我創建一個笨控制器類這樣的...
class api_controller extends MY_Controller {
function get_data() {
$this->data['view'] = "data";
$this->load->view("data_view", $this->data);
}
function get_xml() {
$this->data['part'] = "xml";
$this->load->view("data_view", $this->data);
}
}
我想問的是,如果當我訪問類似api_controller/get_data
和api_controller/get_xml
的URL時,控制器類擴展了MY_Controller
,那麼父類的構造函數總是被調用,即總是調用MY_Controller()
。
我是在推斷更正以下
get_data() called
-> $data => array ('err' => 'no', 'view' => 'data')
get_xml() called
-> $data => array ('err' => 'no', 'part' => 'xml')
升級到CI 2.0以正確使用__construct()一路通過或某些版本的PHP將無法正確處理構造函數。某些版本可以將__construct()映射到PHP4風格的Controller,但是CI 2.0只是刪除了所有PHP 4風格的構造函數。 – 2011-02-03 11:22:21