function set($name, $value, &$ref) { $m = 'set' . $name; if (method_exists($ref, $m) && !is_null($value = $ref->{$m}($value))) { return $value; } return parent::set($name, $value, $ref); }
function has($name, &$ref) { if (is_null($name)) { return false; } $prmName = $this->Name; if (property_exists($ref, $prmName) && is_array($ref->{$prmName})) { return array_key_exists($name, $ref->{$prmName}); } return parent::has($name, $ref); }