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            )
87            2: Stmt_Property(
88                attrGroups: array(
89                )
90                flags: PROTECTED (2)
91                type: null
92                props: array(
93                    0: PropertyItem(
94                        name: VarLikeIdentifier(
95                            name: e
96                        )
97                        default: null
98                    )
99                )
100            )
101            3: Stmt_Property(
102                attrGroups: array(
103                )
104                flags: PRIVATE (4)
105                type: null
106                props: array(
107                    0: PropertyItem(
108                        name: VarLikeIdentifier(
109                            name: f
110                        )
111                        default: null
112                    )
113                )
114            )
115            4: Stmt_ClassMethod(
116                attrGroups: array(
117                )
118                flags: PUBLIC (1)
119                byRef: false
120                name: Identifier(
121                    name: a
122                )
123                params: array(
124                )
125                returnType: null
126                stmts: array(
127                )
128            )
129            5: Stmt_ClassMethod(
130                attrGroups: array(
131                )
132                flags: PUBLIC | STATIC (9)
133                byRef: false
134                name: Identifier(
135                    name: b
136                )
137                params: array(
138                    0: Param(
139                        attrGroups: array(
140                        )
141                        flags: 0
142                        type: null
143                        byRef: false
144                        variadic: false
145                        var: Expr_Variable(
146                            name: a
147                        )
148                        default: null
149                    )
150                )
151                returnType: null
152                stmts: array(
153                )
154            )
155            6: Stmt_ClassMethod(
156                attrGroups: array(
157                )
158                flags: PUBLIC | FINAL (33)
159                byRef: false
160                name: Identifier(
161                    name: c
162                )
163                params: array(
164                )
165                returnType: Name(
166                    name: B
167                )
168                stmts: array(
169                )
170            )
171            7: Stmt_ClassMethod(
172                attrGroups: array(
173                )
174                flags: PROTECTED (2)
175                byRef: false
176                name: Identifier(
177                    name: d
178                )
179                params: array(
180                )
181                returnType: null
182                stmts: array(
183                )
184            )
185            8: Stmt_ClassMethod(
186                attrGroups: array(
187                )
188                flags: PRIVATE (4)
189                byRef: false
190                name: Identifier(
191                    name: e
192                )
193                params: array(
194                )
195                returnType: null
196                stmts: array(
197                )
198            )
199        )
200    )
201)
202