我在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);
}
}
}
}
答案 0 :(得分:1)
$this->data
而不是$this->$data
。
后者会假设,你想在实例上调用一个动态变量。
$prop = 'myProperty';
$this->$prop = 'test';
与
相同$this->myProperty = 'test';
答案 1 :(得分:1)
怎么样:
return $this->data;