1Default values (static scalar tests) 2----- 3<?php 4 5function a( 6 $b = null, 7 $c = 'foo', 8 $d = A::B, 9 $f = +1, 10 $g = -1.0, 11 $h = array(), 12 $i = [], 13 $j = ['foo'], 14 $k = ['foo', 'bar' => 'baz'] 15) {} 16----- 17array( 18 0: Stmt_Function( 19 attrGroups: array( 20 ) 21 byRef: false 22 name: Identifier( 23 name: a 24 ) 25 params: array( 26 0: Param( 27 attrGroups: array( 28 ) 29 flags: 0 30 type: null 31 byRef: false 32 variadic: false 33 var: Expr_Variable( 34 name: b 35 ) 36 default: Expr_ConstFetch( 37 name: Name( 38 name: null 39 ) 40 ) 41 ) 42 1: Param( 43 attrGroups: array( 44 ) 45 flags: 0 46 type: null 47 byRef: false 48 variadic: false 49 var: Expr_Variable( 50 name: c 51 ) 52 default: Scalar_String( 53 value: foo 54 ) 55 ) 56 2: Param( 57 attrGroups: array( 58 ) 59 flags: 0 60 type: null 61 byRef: false 62 variadic: false 63 var: Expr_Variable( 64 name: d 65 ) 66 default: Expr_ClassConstFetch( 67 class: Name( 68 name: A 69 ) 70 name: Identifier( 71 name: B 72 ) 73 ) 74 ) 75 3: Param( 76 attrGroups: array( 77 ) 78 flags: 0 79 type: null 80 byRef: false 81 variadic: false 82 var: Expr_Variable( 83 name: f 84 ) 85 default: Expr_UnaryPlus( 86 expr: Scalar_Int( 87 value: 1 88 ) 89 ) 90 ) 91 4: Param( 92 attrGroups: array( 93 ) 94 flags: 0 95 type: null 96 byRef: false 97 variadic: false 98 var: Expr_Variable( 99 name: g 100 ) 101 default: Expr_UnaryMinus( 102 expr: Scalar_Float( 103 value: 1 104 ) 105 ) 106 ) 107 5: Param( 108 attrGroups: array( 109 ) 110 flags: 0 111 type: null 112 byRef: false 113 variadic: false 114 var: Expr_Variable( 115 name: h 116 ) 117 default: Expr_Array( 118 items: array( 119 ) 120 ) 121 ) 122 6: Param( 123 attrGroups: array( 124 ) 125 flags: 0 126 type: null 127 byRef: false 128 variadic: false 129 var: Expr_Variable( 130 name: i 131 ) 132 default: Expr_Array( 133 items: array( 134 ) 135 ) 136 ) 137 7: Param( 138 attrGroups: array( 139 ) 140 flags: 0 141 type: null 142 byRef: false 143 variadic: false 144 var: Expr_Variable( 145 name: j 146 ) 147 default: Expr_Array( 148 items: array( 149 0: ArrayItem( 150 key: null 151 value: Scalar_String( 152 value: foo 153 ) 154 byRef: false 155 unpack: false 156 ) 157 ) 158 ) 159 ) 160 8: Param( 161 attrGroups: array( 162 ) 163 flags: 0 164 type: null 165 byRef: false 166 variadic: false 167 var: Expr_Variable( 168 name: k 169 ) 170 default: Expr_Array( 171 items: array( 172 0: ArrayItem( 173 key: null 174 value: Scalar_String( 175 value: foo 176 ) 177 byRef: false 178 unpack: false 179 ) 180 1: ArrayItem( 181 key: Scalar_String( 182 value: bar 183 ) 184 value: Scalar_String( 185 value: baz 186 ) 187 byRef: false 188 unpack: false 189 ) 190 ) 191 ) 192 ) 193 ) 194 returnType: null 195 stmts: array( 196 ) 197 ) 198) 199