在Codeigniter Controller中声明私有变量

时间:2015-04-14 15:30:40

标签: php codeigniter private

我是CI的新手,我正在尝试通过应用程序访问私有变量,但是我为变量设置了一个值,下次我尝试访问该函数时(我在我的提交表单中调用了该函数)视图),我设置的私有变量是空的。有人可以帮忙吗? THX

class Example extends CI_Controller{

    private $_variable;

    public function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        //value from database
        $this->_variable = 'somevalue';
    }

    //calling this function from a view
    public function some_method()
    {
        // code...
        // $this->_variable returning without any value
    }
}

2 个答案:

答案 0 :(得分:0)

您的some_method实际上不是视图。它最多可能是一个将从视图调用的示例控制器函数。您的index()函数实际上是在您的私有$_variable中分配值,因此要将值传递给您的视图,您必须首先调用index()函数来分配变量,并且该值将可用到你的some_method()。下面将给出如何将变量传递给视图的示例。

    public function some_method()
    {

        return  $this->_variable;

    }

在您的视图中,要访问变量:

echo $this->some_method();

我相信这会帮助您在视图中显示私有变量。

答案 1 :(得分:0)

您的观点不应该直接尝试访问控制器的方法,而应该在第二个arg中调用视图时发送它们:

See Codeigniter's docs related to this(我认为你是西班牙语,因为你使用"变量")。

$args = Array( "var1" => "variable", "var2" => "variable" );
$this->load->view("some_url", $args);

然后您的视图中将提供$ var1和$ var2。