Edit report at https://bugs.php.net/bug.php?id=55559&edit=1
ID: 55559 Updated by: il...@php.net Reported by: info at strictcoding dot co dot uk Summary: ReflectionClass::getProperties() wrongly returns static properties -Status: Open +Status: Bogus Type: Bug Package: Reflection related Operating System: Fedora 15 PHP Version: 5.3SVN-2011-08-31 (SVN) Block user comment: N Private report: N New Comment: Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php The purpose would be to allow you to retrieve only the static properties, no bug here. Previous Comments: ------------------------------------------------------------------------ [2011-08-31 23:40:55] info at strictcoding dot co dot uk I can see your point, however what would be the purpose of IS_STATIC then? The whole point of the filter parameter, IMO, is to ask for a property which either IS_PUBLIC, or IS_PUBLIC *and* IS_STATIC. ------------------------------------------------------------------------ [2011-08-31 22:28:57] johan...@php.net A static property is also a public property. I can see where you are coming from but I'm not sure I want to follow the logic. Maybe we'd need "negative" filters, while this makes it quite complex so I'd then again prefer filtering it from the outside. As then you really have all the freedom. $non_private_properties = array_filter($r->getProperties(), function ($p) { return !$p->isPublic(); }); ------------------------------------------------------------------------ [2011-08-31 22:14:27] info at strictcoding dot co dot uk Description: ------------ When used without ReflectionProperty::IS_STATIC, ReflectionClass::getProperties() still returns static properties. Test script: --------------- class A { public static $x; } $r = new ReflectionClass('A'); print_r($r->getProperties(ReflectionProperty::IS_PUBLIC)); Expected result: ---------------- Array ( ) Actual result: -------------- Array ( [0] => ReflectionProperty Object ( [name] => x [class] => A ) ) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=55559&edit=1