Note, that this method does not guarantee, that you can get a property with ReflectionClass::getProperty().
ReflectionClass::hasProperty() considers the parent classes (ignoring however, that a private property is not inherited), while ReflectionClass::getProperty() and ReflectionClass::getProperties() don't care about inheritance.
(Tested with PHP 5.3.0)
<?php
class Foo
{
private $x;
}
class Bar extends Foo
{
}
$foo = new ReflectionClass('Foo');
$bar = new ReflectionClass('Bar');
var_dump($foo->hasProperty('x'); var_dump($bar->hasProperty('x'); var_dump(get_class($foo->getProperty('x'))); try {
$bar->getProperty('x');
} catch (ReflectionException $e) {
echo $e->getMessage(); }
?>