Hello Sebastian, fixed in cvs - and btw it took me 5 seconds to fix - i bet you could have done it yourself :-)
best regards marcus Sunday, December 11, 2005, 1:25:26 PM, you wrote: > The code below (which is based on Derick's code [1]) used to work until > recently: > <?php > class ClassWithNonPublicProperties { > protected $protectedProperty = 'foo'; > private $privateProperty = 'bar'; > } > function getNonPublicProperty($object, $propertyName) { > try { > $class = new ReflectionClass($object); > if ($class->hasProperty($propertyName)) { > $property = $class->getProperty($propertyName); > if (!$property->isPublic()) { > if ($property->isProtected()) { > $propertyName = "\0*\0" . $propertyName; > } else { > $propertyName = sprintf( > "\0%s\0%s", > get_class($object), > $propertyName > ); > } > $tmp = (array) $object; > return $tmp[$propertyName]; > } else { > return $object->$propertyName; > } > } else { > throw new InvalidArgumentException; > } > } > catch (ReflectionException $e) { > throw new InvalidArgumentException; > } > } > $object = new ClassWithNonPublicProperties; > print getNonPublicProperty($object, 'protectedProperty') . "\n"; > print getNonPublicProperty($object, 'privateProperty') . "\n"; > ?> > The current PHP_5_1 prints > Warning: ReflectionClass::getProperty(): > bad type specifier while parsing parameters in test.php on line 12 > Fatal error: Call to a member function isPublic() on a non-object > in test.php on line 14 > Is this change in behaviour intentional or should I file a bug report > for this? > -- > [1] http://derickrethans.nl/private_properties_exposed.php > -- > Sebastian Bergmann http://www.sebastian-bergmann.de/ > GnuPG Key: 0xB85B5D69 / 27A7 2B14 09E4 98CD 6277 0E5B 6867 C514 B85B 5D69 Best regards, Marcus -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php