无法在PHP codeigniter Model类中访问全局变量。

时间:2014-04-03 13:12:40

标签: php codeigniter scope public

我在Codeigniter中有一个扩展CI_Model的类。

我已经声明了一个全局数组 $ data ,但是我无法从我想要推送一些项目的函数中访问这个数组。 显示

遇到PHP错误消息:未定义的变量:数据

致命错误:无法访问第51行 /api/system/core/Model.php 中的空白属性

课程代码:

class Subscription_collection_model extends CI_Model {
        public $data=array();
    /*
    |-----------------------------------------
    | Constructor
    |-----------------------------------------
    */

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

    function get() {

            $this->db->select('family.house_name,family.id,family_grade.amount');
            $this->db->from('family');
            $this->db->join('family_grade','family_grade.id = family.family_grade_id');
            $query = $this->db->get();
             if ($query->num_rows() > 0)
               {
                foreach ($query->result() as $row)
                    {
                        $this->findBalance($row->id);
                     }
                }    
         return $data;
        }


     function findBalance($id) {

        $this->db->where('family_id', $id);
        $this->db->select_sum('collecting_amount');
        $query = $this->db->get('subscription_collection');

           if ($query->num_rows() > 0)
               {
                foreach ($query->result() as $row)
                    {
                        array_push($this->$data,$row->collecting_amount);


                     }
                }
    }
}

2 个答案:

答案 0 :(得分:1)

你有错字吗?您想拨打$this->data而不是$this->$data。 后者会假设,你想在实例上调用一个动态变量。

$prop = 'myProperty';
$this->$prop = 'test';

相同
$this->myProperty = 'test';

答案 1 :(得分:1)

怎么样:

return $this->data;