getName()); // Property in parent trait Assert::same('A', Reflection::getPropertyDeclaringClass(new ReflectionProperty('D', 'bar'))->getName()); // Property in class itself Assert::same('C', Reflection::getPropertyDeclaringClass(new ReflectionProperty('D', 'own'))->getName()); // Property in second trait Assert::same('E', Reflection::getPropertyDeclaringClass(new ReflectionProperty('D', 'baz'))->getName());