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