这可以在codeigniter中完成吗?

时间:2011-06-26 12:07:10

标签: php codeigniter

我正在使用codeigniter开发一个Web应用程序。现在,如果我想在调用函数时将变量从一个函数加载到另一个函数,那么它是否可能?请考虑以下示例:

在同一个类中有两个函数如下:

Class Form extends CI_Controller(){

function submit()
{
 $data['title'] = "Website";
 $data['header'] = "Welcome to my website";
 $this->load->vars($data);
 $this->load->view('welcome');
}

function xyz()
{
 $data['footer'] ="Mywebsite 2011 Copyright";
 $this->submit();
}
}

当我调用xyz函数时,$ data ['footer']是否包含在submit()函数中?就像submit()将$ data ['footer']加载到$ this-> loads-> vars($ data)?如果不是可以做什么来包括相同的?

1 个答案:

答案 0 :(得分:1)

有两种方法可以做到这一点。第一个是将数据作为参数传递,例如:

Class Form extends CI_Controller(){

function submit($footer = false)
{
  $data['footer'] = $footer; // set the footer. 
 $data['title'] = "Website";
 $data['header'] = "Welcome to my website";
 $this->load->vars($data);
 $this->load->view('welcome');
}

function xyz()
{
 $data['footer'] ="Mywebsite 2011 Copyright";
 $this->submit($data['footer']);
}
}

另一种方法是将页脚数据设置为类变量,该变量可供控制器中的所有函数使用,如下所示:

Class Form extends CI_Controller(){

var $footer = false; 

function submit()
{
  $data['footer'] = $this->footer; // get the footer. 
 $data['title'] = "Website";
 $data['header'] = "Welcome to my website";
 $this->load->vars($data);
 $this->load->view('welcome');
}

function xyz()
{
 $this->footer = "Mywebsite 2011 Copyright";
 $this->submit($data['footer']);
}
}