我有一個對象,其公共屬性主要是數組。我已經寫了下面的兩個功能:將值賦給數組的對象屬性
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'); –