我在控制器中定义了全局变量,但我在index()函数中赋值。 index()内部可访问的值,但不在about和其他函数内部。我该怎么做 ??
class Manage_business extends CI_Controller
{
var $id;
public function __construct()
{
parent::__construct();
}
public function index($no)
{
$this->id=$no;
echo $this->id;
}
public function about()
{
echo $this->id;
die();
}
}
答案 0 :(得分:1)
尝试使用会话,是您拥有的众多选项之一
class Manage_business extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library('session);
}
public function index($no)
{
$this->session->set_userdata('id',$no) //to last
$this->session->set_flashdata('id',$no) //available only for the next refresh
echo $this->id;
}
public function about()
{
echo $this->session->id;
die();
} }
通过这种方式你可以看到你在索引上做了什么,请看它对你有用,还有其他方法,但我觉得这个方法最有效且易于使用。答案 1 :(得分:0)
您在变量声明中使用var,这会产生语法错误。可以在construct()中创建全局变量,以便该类中的其他函数可以使用该变量。
请检查下面的更正代码。
class Manage_business extends CI_Controller
{
public function __construct()
{
parent::__construct();
$id;
}
public function index($no)
{
$this->id=$no;
echo $this->id;
}
public function about()
{
echo $this->id;
die();
}
}
答案 2 :(得分:0)
codeigniter不允许使用此方法,因为您应该在控制器或模态中定义值并将它们转发。最简单的方法之一是在config / constants.php中定义为常量,这将在整个应用程序中可用而不传递给模态或视图或控制器,它们可以在任何地方全局访问..另一种方法是在cisession中使用会话值作为你必须调用会话并提取值。