ID: 40757 User updated by: nrspark at 163 dot com Reported By: nrspark at 163 dot com -Status: Bogus +Status: Open Bug Type: Class/Object related Operating System: Windows XP PHP Version: 5.2.1 New Comment:
but it works expect if the method change to this function getFields($obj){ return array('p1'=>$obj->p1); } and it work expect in java using reflection think about: Liskov Substitution Principle i thing this is the implemention bug of get_object_vars Previous Comments: ------------------------------------------------------------------------ [2007-03-09 10:14:42] [EMAIL PROTECTED] I would be very surprised to be able to access private properties of Base in the context of Child. What you see is expected. ------------------------------------------------------------------------ [2007-03-08 12:05:12] nrspark at 163 dot com Description: ------------ method to get the private properties of the base object in base class object, everything ok in child class use inherit method, get empty Reproduce code: --------------- class Base { private $p1='sadf'; function getFields($obj){ return get_object_vars($obj); } } class Child extends Base { } $base=new Base(); print_r($base->getFields(new Base())); $child=new Child(); print_r($child->getFields(new Base())); Expected result: ---------------- Array ( [p1] => sadf )Array ( [p1] => sadf ) Actual result: -------------- Array ( [p1] => sadf ) Array ( ) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=40757&edit=1