我很高兴遇到了一些变量范围问题。也许我只是需要更多咖啡......
这是我的(简化的)代码 - 这是在 CodeIgniter 2 中:
class Agent extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('agent_model');
// Get preliminary data that will be often-used in Agent functions
$user = $this->my_auth_library->get_user();
$agent = $this->agent_model->get_agent($user->id);
}
public function index()
{
$this->template->set('info', $this->agent_model->get_info($agent->id));
$this->template->build('agent/welcome');
}
不幸的是,当我运行索引函数时,我被告知:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: agent
Filename: controllers/agent.php
Line Number: 51
第 51 行是索引函数的第一行。出了什么问题?这是范围问题还是其他问题?
Thanks!
你还没有设置$agent
在索引操作中,如果您希望在构造函数中设置的变量可访问,那么您必须将它们设置为类属性,即:$this->Agent = ...;
,并以相同的方式访问它们$this->Agent->id
。 (我会将它们大写以表明它们是对象而不仅仅是变量)例如:
$this->User = $this->my_auth_library->get_user();
$this->Agent = $this->agent_model->get_agent($user->id);
构造函数的行为与任何其他类方法相同,其唯一的特殊属性是在实例化类时自动运行,正常的变量范围仍然适用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)