我有一个对象,其公共属性主要是数组。我已经写了下面的两个功能:将值赋给数组的对象属性
public function updateProperty($property, $key, $value) {
if ($key!=null) $this->$property[$key]=$value;
else $this->$property=$value;
}
public function getProperty($property, $key=null) {
if ($key!=null) return $this->$property[$key];
else return $data;
}
当我尝试使用这些功能,我总是得到以下警告:
警告:非法串偏移“身份证”
如果我将getProperty函数更改为以下版本,那么一切正常,但我无法弄清楚如何更改updateProperty。为什么我得到这个警告?
public function getProperty($property, $key=null) {
$data=$this->$property;
if ($key!=null) return $data[$key];
else return $data;
}
你已经定义了'公共财产$ =阵列();'?另外,不需要将$ property传递给函数。在尝试返回它之前,还要检查'isset()'。 – AbraCadaver
我已经定义了public $ datafields = array();我用下面的方法使用函数:$ class-> getProperty('datafields','firstData'); –