codeigniter全局变量值不可访问

时间:2016-06-22 10:42:22

标签: php codeigniter

我在控制器中定义了全局变量,但我在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();
}
}

3 个答案:

答案 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中使用会话值作为你必须调用会话并提取值。