newInInitializer.test 4.0 KB

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