getProperties(); $parent = $reflect->getParentClass(); $parent_reflect = new ReflectionObject(new $parent->name()); $parent_properties = $parent_reflect->getProperties(); if($reflect){ foreach($properties as $property){ foreach($parent_properties as $parent_property){ if($property->name == $var && $property->class == $reflect->getName() && $parent_property->name == $var){ trigger_error($var . ' is finnal property'); return false; } } } } if(!$reflect->hasProperty($var)){ trigger_error('Undefined property:' . $var); }else{ return $this->$var; } } } $a = new b(); echo $a->getVar('attr');