Como obter todas as propriedades da class atual e NÃO seu pai (s) em PHP

Como faço para obter uma matriz de todas as propriedades da class atual, excluindo propriedades herdadas?

Em PHP> = 5.3

$ref = new ReflectionClass('DerivedClass'); $ownProps = array_filter($ref->getProperties(), function($property) { return $property->class == 'DerivedClass'; }); print_r($ownProps); 

Isso funcionará:

 $class = new ReflectionClass($className); // get class object $properties = $class->getProperties(); // get class properties $ownProperties = array(); foreach ($properties as $property) { // skip inherited properties if ($property->getDeclaringClass()->getName() !== $class->getName()) { continue; } $ownProperties[] = $property->getName(); } print_r($ownProperties; 

Você pode alcançá-lo apenas com reflection, aqui exemplo adequado:

 < ?php class foo { protected $propery1; } class boo extends foo { private $propery2; protected $propery3; public $propery4; } $reflect = new ReflectionClass('boo'); $props = $reflect->getProperties(); $ownProps = []; foreach ($props as $prop) { if ($prop->class === 'boo') { $ownProps[] = $prop->getName(); } } var_export($ownProps); 

Resultado:

 array ( 0 => 'propery2', 1 => 'propery3', 2 => 'propery4', )