1New in initializers 2----- 3<?php 4 5const C = new Foo; 6 7function a($x = new Foo) { 8 static $y = new Foo; 9} 10 11#[Attr(new Foo)] 12class Bar { 13 const C = new Foo; 14 public $prop = new Foo; 15} 16----- 17array( 18 0: Stmt_Const( 19 consts: array( 20 0: Const( 21 name: Identifier( 22 name: C 23 ) 24 value: Expr_New( 25 class: Name( 26 name: Foo 27 ) 28 args: array( 29 ) 30 ) 31 ) 32 ) 33 ) 34 1: Stmt_Function( 35 attrGroups: array( 36 ) 37 byRef: false 38 name: Identifier( 39 name: a 40 ) 41 params: array( 42 0: Param( 43 attrGroups: array( 44 ) 45 flags: 0 46 type: null 47 byRef: false 48 variadic: false 49 var: Expr_Variable( 50 name: x 51 ) 52 default: Expr_New( 53 class: Name( 54 name: Foo 55 ) 56 args: array( 57 ) 58 ) 59 ) 60 ) 61 returnType: null 62 stmts: array( 63 0: Stmt_Static( 64 vars: array( 65 0: StaticVar( 66 var: Expr_Variable( 67 name: y 68 ) 69 default: Expr_New( 70 class: Name( 71 name: Foo 72 ) 73 args: array( 74 ) 75 ) 76 ) 77 ) 78 ) 79 ) 80 ) 81 2: Stmt_Class( 82 attrGroups: array( 83 0: AttributeGroup( 84 attrs: array( 85 0: Attribute( 86 name: Name( 87 name: Attr 88 ) 89 args: array( 90 0: Arg( 91 name: null 92 value: Expr_New( 93 class: Name( 94 name: Foo 95 ) 96 args: array( 97 ) 98 ) 99 byRef: false 100 unpack: false 101 ) 102 ) 103 ) 104 ) 105 ) 106 ) 107 flags: 0 108 name: Identifier( 109 name: Bar 110 ) 111 extends: null 112 implements: array( 113 ) 114 stmts: array( 115 0: Stmt_ClassConst( 116 attrGroups: array( 117 ) 118 flags: 0 119 type: null 120 consts: array( 121 0: Const( 122 name: Identifier( 123 name: C 124 ) 125 value: Expr_New( 126 class: Name( 127 name: Foo 128 ) 129 args: array( 130 ) 131 ) 132 ) 133 ) 134 ) 135 1: Stmt_Property( 136 attrGroups: array( 137 ) 138 flags: PUBLIC (1) 139 type: null 140 props: array( 141 0: PropertyItem( 142 name: VarLikeIdentifier( 143 name: prop 144 ) 145 default: Expr_New( 146 class: Name( 147 name: Foo 148 ) 149 args: array( 150 ) 151 ) 152 ) 153 ) 154 ) 155 ) 156 ) 157) 158