我正在使用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)?如果不是可以做什么来包括相同的?
答案 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']);
}
}