function __get($name) { if (strncmp($name, 'param_', 6) == 0) { $paramname = substr($name, 6); $params = unserialize($this->params); return isset($params[$paramname]) ? $params[$paramname] : NULL; } else { return parent::__get($name); } }
/** * Magic get method to returns custom field data when accessed as * $this->field_[fieldname], in addition to the parent class' magic getter * functionality. */ public function __get($name) { $prefix_len = strlen(self::CUSTOM_FIELD_PREFIX); if (strncmp($name, self::CUSTOM_FIELD_PREFIX, $prefix_len) == 0) { $this->_load_fields(); $shortname = substr($name, $prefix_len); if (isset(self::$_fields[$this->get_field_context_level()][$shortname])) { // we have a custom field of the same name if (isset($this->_field_data[$shortname])) { // we have data return $this->_field_data[$shortname]; } else { if (!$this->_fields_loaded && empty($this->_field_changed[$shortname])) { // custom fields haven't been loaded yet (and the field // hasn't been unset) $this->_load_field_data(); if (isset($this->_field_data[$shortname])) { return $this->_field_data[$shortname]; } } } // we have no data for this field return null; } $trace = debug_backtrace(); $classname = get_class($this); trigger_error("Undefined property via __get(): {$classname}::\${$name} in {$trace[1]['file']} on line {$trace[1]['line']}", E_USER_NOTICE); return null; } return parent::__get($name); }