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

Reply via email to