Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter My_控制器错误,默认对象为空值_Codeigniter - Fatal编程技术网

Codeigniter My_控制器错误,默认对象为空值

Codeigniter My_控制器错误,默认对象为空值,codeigniter,Codeigniter,我的问题是,我使用的php版本5.4将在我的控制器中出现此错误,请看下面的屏幕截图 但在php版本5.3下没有问题 这是我的密码 <?php class MY_Controller extends CI_Controller { function __construct() { parent::__construct(); $data->the_leave_data = $this->leave_data(); <-

我的问题是,我使用的php版本5.4将在我的控制器中出现此错误,请看下面的屏幕截图

但在php版本5.3下没有问题

这是我的密码

 <?php

class MY_Controller extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $data->the_leave_data = $this->leave_data(); <--- line 8 is here
        $this->the_leave_data = $data->the_leave_data;
        $this->load->vars($data);
    }

    function leave_data()
    {
        $data = array();
        $this->load->model('leave_data_model');
        $staff_id = $this->session->userdata('staff_id');
        if($query = $this->leave_data_model->get_by('staff_id',$staff_id))
        {
            $data['leave_data_records'] = $query;           
        }
        var_dump($data);
        return $data;
    }

}

?>

你知道怎么解决吗?谢谢

意思是
$this->leave_data()为空

我看不到任何地方,在你的控制器中加载数据。如果您在其他地方定义它,那么它将从
CI\u Controller
中加载。。。你应该做
parent::$this->leave_data()

您使用的是PHP5.4吗? PHP5.4有严格的标准。您需要将$data声明为stdClass的对象:

$data = new stdClass();    
$data->the_leave_data = $this->leave_data();

这很可能是CodeIgniter中的一个弃用错误,请直接向他们报告这一问题,是否有任何解决方案?据我所知,这似乎只是新版本php的一个问题。一切似乎都很好,但仍然让人恼火的是,到处都会出现这个错误。我想我现在就把错误报告关了……嗨,w0rldart,谢谢你的回复,我得到了var_dump$data,它有返回值,但它仍然有错误,所以你说
var_dump$data)在第八行之后,输出值?是的,我已经更新了我的帖子,请看一下var_dumpHave中的返回值,使用
$data
作为数组,而不是对象?
$data = new stdClass();    
$data->the_leave_data = $this->leave_data();