misc.test 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. Uniform variable syntax in PHP 7 (misc)
  2. -----
  3. <?php
  4. A::A[0];
  5. A::A[0][1][2];
  6. "string"->length();
  7. (clone $obj)->b[0](1);
  8. [0, 1][0] = 1;
  9. -----
  10. !!php7
  11. array(
  12. 0: Stmt_Expression(
  13. expr: Expr_ArrayDimFetch(
  14. var: Expr_ClassConstFetch(
  15. class: Name(
  16. parts: array(
  17. 0: A
  18. )
  19. )
  20. name: Identifier(
  21. name: A
  22. )
  23. )
  24. dim: Scalar_LNumber(
  25. value: 0
  26. )
  27. )
  28. )
  29. 1: Stmt_Expression(
  30. expr: Expr_ArrayDimFetch(
  31. var: Expr_ArrayDimFetch(
  32. var: Expr_ArrayDimFetch(
  33. var: Expr_ClassConstFetch(
  34. class: Name(
  35. parts: array(
  36. 0: A
  37. )
  38. )
  39. name: Identifier(
  40. name: A
  41. )
  42. )
  43. dim: Scalar_LNumber(
  44. value: 0
  45. )
  46. )
  47. dim: Scalar_LNumber(
  48. value: 1
  49. )
  50. )
  51. dim: Scalar_LNumber(
  52. value: 2
  53. )
  54. )
  55. )
  56. 2: Stmt_Expression(
  57. expr: Expr_MethodCall(
  58. var: Scalar_String(
  59. value: string
  60. )
  61. name: Identifier(
  62. name: length
  63. )
  64. args: array(
  65. )
  66. )
  67. )
  68. 3: Stmt_Expression(
  69. expr: Expr_FuncCall(
  70. name: Expr_ArrayDimFetch(
  71. var: Expr_PropertyFetch(
  72. var: Expr_Clone(
  73. expr: Expr_Variable(
  74. name: obj
  75. )
  76. )
  77. name: Identifier(
  78. name: b
  79. )
  80. )
  81. dim: Scalar_LNumber(
  82. value: 0
  83. )
  84. )
  85. args: array(
  86. 0: Arg(
  87. value: Scalar_LNumber(
  88. value: 1
  89. )
  90. byRef: false
  91. unpack: false
  92. )
  93. )
  94. )
  95. )
  96. 4: Stmt_Expression(
  97. expr: Expr_Assign(
  98. var: Expr_ArrayDimFetch(
  99. var: Expr_Array(
  100. items: array(
  101. 0: Expr_ArrayItem(
  102. key: null
  103. value: Scalar_LNumber(
  104. value: 0
  105. )
  106. byRef: false
  107. )
  108. 1: Expr_ArrayItem(
  109. key: null
  110. value: Scalar_LNumber(
  111. value: 1
  112. )
  113. byRef: false
  114. )
  115. )
  116. )
  117. dim: Scalar_LNumber(
  118. value: 0
  119. )
  120. )
  121. expr: Scalar_LNumber(
  122. value: 1
  123. )
  124. )
  125. )
  126. )