php类中的变量,可以在其所有函数中使用

时间:2012-06-09 18:01:18

标签: php class codeigniter scope codeigniter-2

我想在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: dataFatal error: Cannot access empty property in ..\search.php on line 16

1 个答案:

答案 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