9247eec9faca1d9f89e3cee6d6c9a72ab7b16d25
[yaffs-website] / vendor / nikic / php-parser / test / code / parser / stmt / class / simple.test
1 Class declaration
2 -----
3 <?php
4
5 class 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     public final function c() : B {}
15     protected function d() {}
16     private function e() {}
17 }
18 -----
19 array(
20     0: Stmt_Class(
21         flags: 0
22         name: Identifier(
23             name: A
24         )
25         extends: Name(
26             parts: array(
27                 0: B
28             )
29         )
30         implements: array(
31             0: Name(
32                 parts: array(
33                     0: C
34                 )
35             )
36             1: Name(
37                 parts: array(
38                     0: D
39                 )
40             )
41         )
42         stmts: array(
43             0: Stmt_ClassConst(
44                 flags: 0
45                 consts: array(
46                     0: Const(
47                         name: Identifier(
48                             name: A
49                         )
50                         value: Scalar_String(
51                             value: B
52                         )
53                     )
54                     1: Const(
55                         name: Identifier(
56                             name: C
57                         )
58                         value: Scalar_String(
59                             value: D
60                         )
61                     )
62                 )
63             )
64             1: Stmt_Property(
65                 flags: MODIFIER_PUBLIC (1)
66                 props: array(
67                     0: Stmt_PropertyProperty(
68                         name: VarLikeIdentifier(
69                             name: a
70                         )
71                         default: Scalar_String(
72                             value: b
73                         )
74                     )
75                     1: Stmt_PropertyProperty(
76                         name: VarLikeIdentifier(
77                             name: c
78                         )
79                         default: Scalar_String(
80                             value: d
81                         )
82                     )
83                 )
84             )
85             2: Stmt_Property(
86                 flags: MODIFIER_PROTECTED (2)
87                 props: array(
88                     0: Stmt_PropertyProperty(
89                         name: VarLikeIdentifier(
90                             name: e
91                         )
92                         default: null
93                     )
94                 )
95             )
96             3: Stmt_Property(
97                 flags: MODIFIER_PRIVATE (4)
98                 props: array(
99                     0: Stmt_PropertyProperty(
100                         name: VarLikeIdentifier(
101                             name: f
102                         )
103                         default: null
104                     )
105                 )
106             )
107             4: Stmt_ClassMethod(
108                 flags: MODIFIER_PUBLIC (1)
109                 byRef: false
110                 name: Identifier(
111                     name: a
112                 )
113                 params: array(
114                 )
115                 returnType: null
116                 stmts: array(
117                 )
118             )
119             5: Stmt_ClassMethod(
120                 flags: MODIFIER_PUBLIC | MODIFIER_STATIC (9)
121                 byRef: false
122                 name: Identifier(
123                     name: b
124                 )
125                 params: array(
126                     0: Param(
127                         type: null
128                         byRef: false
129                         variadic: false
130                         var: Expr_Variable(
131                             name: a
132                         )
133                         default: null
134                     )
135                 )
136                 returnType: null
137                 stmts: array(
138                 )
139             )
140             6: Stmt_ClassMethod(
141                 flags: MODIFIER_PUBLIC | MODIFIER_FINAL (33)
142                 byRef: false
143                 name: Identifier(
144                     name: c
145                 )
146                 params: array(
147                 )
148                 returnType: Name(
149                     parts: array(
150                         0: B
151                     )
152                 )
153                 stmts: array(
154                 )
155             )
156             7: Stmt_ClassMethod(
157                 flags: MODIFIER_PROTECTED (2)
158                 byRef: false
159                 name: Identifier(
160                     name: d
161                 )
162                 params: array(
163                 )
164                 returnType: null
165                 stmts: array(
166                 )
167             )
168             8: Stmt_ClassMethod(
169                 flags: MODIFIER_PRIVATE (4)
170                 byRef: false
171                 name: Identifier(
172                     name: e
173                 )
174                 params: array(
175                 )
176                 returnType: null
177                 stmts: array(
178                 )
179             )
180         )
181     )
182 )