Edit report at https://bugs.php.net/bug.php?id=55559&edit=1

 ID:                 55559
 Updated by:         johan...@php.net
 Reported by:        info at strictcoding dot co dot uk
 Summary:            ReflectionClass::getProperties() wrongly returns
                     static properties
 Status:             Open
 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:

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(); });


Previous Comments:
------------------------------------------------------------------------
[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

Reply via email to