PHP Codeigniter,分配属性值并访问它

PHP Codeigniter,分配属性值并访问它,php,codeigniter,properties,Php,Codeigniter,Properties,我试图从一个函数中为属性赋值,并在另一个函数中访问它。我认为这应该是这么简单。不幸的是,我似乎不能处理这个简单的任务 这是我的控制器: <?php class Form_Controller extends CI_Controller { public $current_user; public $pi = 3.14; function index() { $this->form_validation->set_rules('emai

我试图从一个函数中为属性赋值,并在另一个函数中访问它。我认为这应该是这么简单。不幸的是,我似乎不能处理这个简单的任务

这是我的控制器:

<?php
class Form_Controller extends CI_Controller {

    public $current_user;
    public $pi = 3.14;

    function index() {
        $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');

        $this->form_validation->set_rules('username', 'Username');
        $this->form_validation->set_rules('password', 'Password');

        if ($this->form_validation->run() == FALSE) {
            $this->load->view('login_form');
        } else {
            $this->load->model('Admin_Users_Model');
            $is_logged_in = $this->Admin_Users_Model->login();

            if ($is_logged_in) {
                $this->load->view('admin_panel/panel');
                $this->load->view('admin_panel/account_verification_status_form');
            } else {
                $this->load->view('login_form');
            }
        }
    }

    function account_verification() {

        $this->load->model('User_Id_Model');
        $data['user_data'] = $this->User_Id_Model->get_user_credentials();

        $this->current_user = $data['user_data'];

        foreach ($this->current_user as $value) {
            echo $value;
        }

        $this->load->view('admin_panel/panel');
        $this->load->view('admin_panel/account_verification_status_form');
        $this->load->view('admin_panel/account_verification_name_form', $data);
        $this->load->view('admin_panel/account_verification_status', $data);
    }

    function name_verification() {

        $selected_value = $this->input->post('verify-name');

        echo count($this->current_user) . '<br />';

        echo $this->current_user;
        echo $this->pi;
      $this->account_verification();
    }

    private function _write_to_database($user_data) {
        $this->load->model('User_Id_Model');
        $this->User_Id_Model->write_to_database($user_data);
    }

}
?>

当我调用
account\u verification()
时,
$current\u user
被分配一个值,我可以打印它。之后我调用
name\u verification()
,但是
$current\u user
没有值。
如果您知道这里发生了什么,请在查看代码后首先解释。

1) 如果您是从url调用名称变量,那么您没有为全局变量分配任何值

    $this->current_user.
2) 如果您是从url调用account_Variation,则必须将数据分配给golbal变量

 $this->current_user 
您并不是从帐户变量中调用名称变量,所以这意味着您是从url调用它,所以它当然会失去它的值,所以正确的代码是要么调用名字变量,然后为它分配以下数据

   $this->load->model('User_Id_Model');
   $data['user_data'] = $this->User_Id_Model->get_user_credentials();
   $this->current_user = $data['user_data'];
在调用$this->account\u验证之后,就像您正在调用的一样,这两个函数都将有值

我希望你能理解。 当做
伊姆兰·卡西姆

我不知道你的意思。请详细说明。为了澄清-我有一个关于表格的观点。表单调用account_verification()account_verification()添加另一个视图,加载另一个表单。提交第二个表单时,它调用name_verification()。在account_verification()中,我获得了一些用户凭据:$data['user_data']=$this->user_Id\u Model->get_user_credentials();我想做的是将凭证传递给第二个方法,这样我就可以用从第二个表单接收到的值更新数据库中的用户。如果有两个表单,则表示您通过url调用这两个函数,因此当您调用name_variation函数时,全局变量current_user不会保留其值。这就是我的意思,如果你想保留这些值,那么你需要在提交第一个表单后使用session来重新创建这些值,并且当你调用第二个方法名时从session中获取这些值,这将解决你的问题。实际上你是对的。将其添加到会话中可以将其传递给下一个函数。。。我现在要做的就是弄清楚从现在开始该做什么:xh我如何选择您的帖子作为答案?只需单击0上方的向上箭头键