public function __call($name, $args) { if (substr($name, 0, 3) == 'set') { $field = ChargeOverAPI_Object::transformMethodToField($name); //$this->_arr[$field] = current($args); $this->{$field} = current($args); return true; } else { if (substr($name, 0, 3) == 'get') { $field = ChargeOverAPI_Object::transformMethodToField($name); //print('transformed [' . $name . ' to ' . $field . ']' . "\n"); if (array_key_exists(0, $args) and is_numeric($args[0])) { //if (!empty($this->_arr[$field][$args[0]])) if (!empty($this->{$field}[$args[0]])) { return $this->{$field}[$args[0]]; //return $this->_arr[$field][$args[0]]; } return null; } else { if (property_exists($this, $field)) { return $this->{$field}; //return $this->_arr[$field]; } } return null; } else { if (substr($name, 0, 3) == 'add') { $field = ChargeOverAPI_Object::transformMethodToField($name); //if (!isset($this->_arr[$field])) if (!isset($this->{$field})) { //$this->_arr[$field] = array(); $this->{$field} = array(); } $Obj = current($args); //$this->_arr[$field][] = $Obj; array_push($this->{$field}, $Obj); } } } }