コード例 #1
0
 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);
     }
 }
コード例 #2
0
 /**
  * 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);
 }