Annotation of embedaddon/php/ext/standard/tests/class_object/get_object_vars_basic_001.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: get_object_vars(): visibility from static methods (target object passed as arg)
3: --FILE--
4: <?php
5: /* Prototype : proto array get_object_vars(object obj)
6: * Description: Returns an array of object properties
7: * Source code: Zend/zend_builtin_functions.c
8: * Alias to functions:
9: */
10:
11: Class A {
12: private $hiddenPriv = 'A::hiddenPriv';
13:
14: public static function test($b) {
15: echo __METHOD__ . "\n";
16: var_dump(get_object_vars($b));
17: }
18: }
19:
20: Class B extends A {
21: private $hiddenPriv = 'B::hiddenPriv';
22: private $priv = 'B::priv';
23: protected $prot = 'B::prot';
24: public $pub = 'B::pub';
25:
26: public static function test($b) {
27: echo __METHOD__ . "\n";
28: var_dump(get_object_vars($b));
29: }
30: }
31:
32: Class C extends B {
33: private $hiddenPriv = 'C::hiddenPriv';
34:
35: public static function test($b) {
36: echo __METHOD__ . "\n";
37: var_dump(get_object_vars($b));
38: }
39: }
40:
41: Class X {
42: public static function test($b) {
43: echo __METHOD__ . "\n";
44: var_dump(get_object_vars($b));
45: }
46: }
47:
48:
49: $b = new B;
50: echo "\n---( Global scope: )---\n";
51: var_dump(get_object_vars($b));
52: echo "\n---( Declaring class: )---\n";
53: B::test($b);
54: echo "\n---( Subclass: )---\n";
55: C::test($b);
56: echo "\n---( Superclass: )---\n";
57: A::test($b);
58: echo "\n---( Unrelated class: )---\n";
59: X::test($b);
60: ?>
61: --EXPECTF--
62:
63: ---( Global scope: )---
64: array(1) {
65: ["pub"]=>
66: string(6) "B::pub"
67: }
68:
69: ---( Declaring class: )---
70: B::test
71: array(4) {
72: ["hiddenPriv"]=>
73: string(13) "B::hiddenPriv"
74: ["priv"]=>
75: string(7) "B::priv"
76: ["prot"]=>
77: string(7) "B::prot"
78: ["pub"]=>
79: string(6) "B::pub"
80: }
81:
82: ---( Subclass: )---
83: C::test
84: array(2) {
85: ["prot"]=>
86: string(7) "B::prot"
87: ["pub"]=>
88: string(6) "B::pub"
89: }
90:
91: ---( Superclass: )---
92: A::test
93: array(3) {
94: ["prot"]=>
95: string(7) "B::prot"
96: ["pub"]=>
97: string(6) "B::pub"
98: ["hiddenPriv"]=>
99: string(13) "A::hiddenPriv"
100: }
101:
102: ---( Unrelated class: )---
103: X::test
104: array(1) {
105: ["pub"]=>
106: string(6) "B::pub"
107: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>