1Class declaration
2-----
3<?php
4
5class A extends B implements C, D {
6    const A = 'B', C = 'D';
7
8    public $a = 'b', $c = 'd';
9    protected $e;
10    private $f;
11
12    public function a() {}
13    public static function b($a) {}
14    final public function c() : B {}
15    protected function d() {}
16    private function e() {}
17}
18-----
19array(
20    0: Stmt_Class(
21        attrGroups: array(
22        )
23        flags: 0
24        name: Identifier(
25            name: A
26        )
27        extends: Name(
28            name: B
29        )
30        implements: array(
31            0: Name(
32                name: C
33            )
34            1: Name(
35                name: D
36            )
37        )
38        stmts: array(
39            0: Stmt_ClassConst(
40                attrGroups: array(
41                )
42                flags: 0
43                type: null
44                consts: array(
45                    0: Const(
46                        name: Identifier(
47                            name: A
48                        )
49                        value: Scalar_String(
50                            value: B
51                        )
52                    )
53                    1: Const(
54                        name: Identifier(
55                            name: C
56                        )
57                        value: Scalar_String(
58                            value: D
59                        )
60                    )
61                )
62            )
63            1: Stmt_Property(
64                attrGroups: array(
65                )
66                flags: PUBLIC (1)
67                type: null
68                props: array(
69                    0: PropertyItem(
70                        name: VarLikeIdentifier(
71                            name: a
72                        )
73                        default: Scalar_String(
74                            value: b
75                        )
76                    )
77                    1: PropertyItem(
78                        name: VarLikeIdentifier(
79                            name: c
80                        )
81                        default: Scalar_String(
82                            value: d
83                        )
84                    )
85                )
86                hooks: array(
87                )
88            )
89            2: Stmt_Property(
90                attrGroups: array(
91                )
92                flags: PROTECTED (2)
93                type: null
94                props: array(
95                    0: PropertyItem(
96                        name: VarLikeIdentifier(
97                            name: e
98                        )
99                        default: null
100                    )
101                )
102                hooks: array(
103                )
104            )
105            3: Stmt_Property(
106                attrGroups: array(
107                )
108                flags: PRIVATE (4)
109                type: null
110                props: array(
111                    0: PropertyItem(
112                        name: VarLikeIdentifier(
113                            name: f
114                        )
115                        default: null
116                    )
117                )
118                hooks: array(
119                )
120            )
121            4: Stmt_ClassMethod(
122                attrGroups: array(
123                )
124                flags: PUBLIC (1)
125                byRef: false
126                name: Identifier(
127                    name: a
128                )
129                params: array(
130                )
131                returnType: null
132                stmts: array(
133                )
134            )
135            5: Stmt_ClassMethod(
136                attrGroups: array(
137                )
138                flags: PUBLIC | STATIC (9)
139                byRef: false
140                name: Identifier(
141                    name: b
142                )
143                params: array(
144                    0: Param(
145                        attrGroups: array(
146                        )
147                        flags: 0
148                        type: null
149                        byRef: false
150                        variadic: false
151                        var: Expr_Variable(
152                            name: a
153                        )
154                        default: null
155                        hooks: array(
156                        )
157                    )
158                )
159                returnType: null
160                stmts: array(
161                )
162            )
163            6: Stmt_ClassMethod(
164                attrGroups: array(
165                )
166                flags: PUBLIC | FINAL (33)
167                byRef: false
168                name: Identifier(
169                    name: c
170                )
171                params: array(
172                )
173                returnType: Name(
174                    name: B
175                )
176                stmts: array(
177                )
178            )
179            7: Stmt_ClassMethod(
180                attrGroups: array(
181                )
182                flags: PROTECTED (2)
183                byRef: false
184                name: Identifier(
185                    name: d
186                )
187                params: array(
188                )
189                returnType: null
190                stmts: array(
191                )
192            )
193            8: Stmt_ClassMethod(
194                attrGroups: array(
195                )
196                flags: PRIVATE (4)
197                byRef: false
198                name: Identifier(
199                    name: e
200                )
201                params: array(
202                )
203                returnType: null
204                stmts: array(
205                )
206            )
207        )
208    )
209)
210