new.test 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. UVS new expressions
  2. -----
  3. <?php
  4. new $className;
  5. new $array['className'];
  6. new $array{'className'};
  7. new $obj->className;
  8. new Test::$className;
  9. new $test::$className;
  10. new $weird[0]->foo::$className;
  11. -----
  12. array(
  13. 0: Stmt_Expression(
  14. expr: Expr_New(
  15. class: Expr_Variable(
  16. name: className
  17. )
  18. args: array(
  19. )
  20. )
  21. )
  22. 1: Stmt_Expression(
  23. expr: Expr_New(
  24. class: Expr_ArrayDimFetch(
  25. var: Expr_Variable(
  26. name: array
  27. )
  28. dim: Scalar_String(
  29. value: className
  30. )
  31. )
  32. args: array(
  33. )
  34. )
  35. )
  36. 2: Stmt_Expression(
  37. expr: Expr_New(
  38. class: Expr_ArrayDimFetch(
  39. var: Expr_Variable(
  40. name: array
  41. )
  42. dim: Scalar_String(
  43. value: className
  44. )
  45. )
  46. args: array(
  47. )
  48. )
  49. )
  50. 3: Stmt_Expression(
  51. expr: Expr_New(
  52. class: Expr_PropertyFetch(
  53. var: Expr_Variable(
  54. name: obj
  55. )
  56. name: Identifier(
  57. name: className
  58. )
  59. )
  60. args: array(
  61. )
  62. )
  63. )
  64. 4: Stmt_Expression(
  65. expr: Expr_New(
  66. class: Expr_StaticPropertyFetch(
  67. class: Name(
  68. name: Test
  69. )
  70. name: VarLikeIdentifier(
  71. name: className
  72. )
  73. )
  74. args: array(
  75. )
  76. )
  77. )
  78. 5: Stmt_Expression(
  79. expr: Expr_New(
  80. class: Expr_StaticPropertyFetch(
  81. class: Expr_Variable(
  82. name: test
  83. )
  84. name: VarLikeIdentifier(
  85. name: className
  86. )
  87. )
  88. args: array(
  89. )
  90. )
  91. )
  92. 6: Stmt_Expression(
  93. expr: Expr_New(
  94. class: Expr_StaticPropertyFetch(
  95. class: Expr_PropertyFetch(
  96. var: Expr_ArrayDimFetch(
  97. var: Expr_Variable(
  98. name: weird
  99. )
  100. dim: Scalar_Int(
  101. value: 0
  102. )
  103. )
  104. name: Identifier(
  105. name: foo
  106. )
  107. )
  108. name: VarLikeIdentifier(
  109. name: className
  110. )
  111. )
  112. args: array(
  113. )
  114. )
  115. )
  116. )