1Property promotion 2----- 3<?php 4 5class Point { 6 public function __construct( 7 public float $x = 0.0, 8 protected array $y = [], 9 private string $z = 'hello', 10 public readonly int $a = 0, 11 ) {} 12} 13----- 14array( 15 0: Stmt_Class( 16 attrGroups: array( 17 ) 18 flags: 0 19 name: Identifier( 20 name: Point 21 ) 22 extends: null 23 implements: array( 24 ) 25 stmts: array( 26 0: Stmt_ClassMethod( 27 attrGroups: array( 28 ) 29 flags: PUBLIC (1) 30 byRef: false 31 name: Identifier( 32 name: __construct 33 ) 34 params: array( 35 0: Param( 36 attrGroups: array( 37 ) 38 flags: PUBLIC (1) 39 type: Identifier( 40 name: float 41 ) 42 byRef: false 43 variadic: false 44 var: Expr_Variable( 45 name: x 46 ) 47 default: Scalar_Float( 48 value: 0 49 ) 50 ) 51 1: Param( 52 attrGroups: array( 53 ) 54 flags: PROTECTED (2) 55 type: Identifier( 56 name: array 57 ) 58 byRef: false 59 variadic: false 60 var: Expr_Variable( 61 name: y 62 ) 63 default: Expr_Array( 64 items: array( 65 ) 66 ) 67 ) 68 2: Param( 69 attrGroups: array( 70 ) 71 flags: PRIVATE (4) 72 type: Identifier( 73 name: string 74 ) 75 byRef: false 76 variadic: false 77 var: Expr_Variable( 78 name: z 79 ) 80 default: Scalar_String( 81 value: hello 82 ) 83 ) 84 3: Param( 85 attrGroups: array( 86 ) 87 flags: PUBLIC | READONLY (65) 88 type: Identifier( 89 name: int 90 ) 91 byRef: false 92 variadic: false 93 var: Expr_Variable( 94 name: a 95 ) 96 default: Scalar_Int( 97 value: 0 98 ) 99 ) 100 ) 101 returnType: null 102 stmts: array( 103 ) 104 ) 105 ) 106 ) 107) 108