1--TEST--
2get_object_vars(): visibility from non static methods (target object passed as arg)
3--FILE--
4<?php
5Class A {
6    private $hiddenPriv = 'A::hiddenPriv';
7
8    public function testA($b) {
9        echo __METHOD__ . "\n";
10        var_dump(get_object_vars($b));
11    }
12}
13
14Class B extends A {
15    private $hiddenPriv = 'B::hiddenPriv';
16    private $priv = 'B::priv';
17    protected $prot = 'B::prot';
18    public $pub = 'B::pub';
19
20    public function testB($b) {
21        echo __METHOD__ . "\n";
22        var_dump(get_object_vars($b));
23    }
24}
25
26
27$b = new B;
28echo "\n---( Declaring class: )---\n";
29$b->testB($b);
30echo "\n---( Superclass: )---\n";
31$b->testA($b);
32
33?>
34--EXPECT--
35---( Declaring class: )---
36B::testB
37array(4) {
38  ["hiddenPriv"]=>
39  string(13) "B::hiddenPriv"
40  ["priv"]=>
41  string(7) "B::priv"
42  ["prot"]=>
43  string(7) "B::prot"
44  ["pub"]=>
45  string(6) "B::pub"
46}
47
48---( Superclass: )---
49A::testA
50array(3) {
51  ["prot"]=>
52  string(7) "B::prot"
53  ["pub"]=>
54  string(6) "B::pub"
55  ["hiddenPriv"]=>
56  string(13) "A::hiddenPriv"
57}
58