我想在php类中声明一个可以在其所有函数中使用的变量。我正在使用codeigniter框架&必须在每个函数中传递base_url等数据。此外,我需要在单个变量中包含所有这些数据。例如$data['base_url']=base_url()
,$data['title']="My_Site_title"
等&然后只发送一个变量$ data(这在codeigniter中很常见)。
根据this问题,我将代码修改为:
class Search extends CI_Controller {
function Search() {
parent::__construct();
$this->load->model('student_model');
$this->load->helper('form');
$this->load->helper('url');
$this->output->enable_profiler(TRUE);
$this->data['base_url']=base_url(); //gives an error here
}
function index() {
$this->load->view('search_view', $this->data);
}
}
但仍然会在标记的地方发出错误Undefined variable: data
和Fatal error: Cannot access empty property in ..\search.php on line 16
。
答案 0 :(得分:1)
你走了:
class Search extends CI_Controller {
protected $data = array();
function Search() {
parent::__construct();
$this->load->model('student_model');
$this->load->helper('form');
$this->load->helper('url');
$this->output->enable_profiler(TRUE);
$this->data['base_url']=base_url();
}
function index() {
$this->load->view('search_view', $this->data);
}
}
有关php中的类属性的更多信息:http://php.net/manual/en/language.oop5.properties.php