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