newDeref.test 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. New expression dereferencing
  2. -----
  3. <?php
  4. (new A)->b;
  5. (new A)->b();
  6. (new A)['b'];
  7. (new A)['b']['c'];
  8. -----
  9. array(
  10. 0: Stmt_Expression(
  11. expr: Expr_PropertyFetch(
  12. var: Expr_New(
  13. class: Name(
  14. parts: array(
  15. 0: A
  16. )
  17. )
  18. args: array(
  19. )
  20. )
  21. name: Identifier(
  22. name: b
  23. )
  24. )
  25. )
  26. 1: Stmt_Expression(
  27. expr: Expr_MethodCall(
  28. var: Expr_New(
  29. class: Name(
  30. parts: array(
  31. 0: A
  32. )
  33. )
  34. args: array(
  35. )
  36. )
  37. name: Identifier(
  38. name: b
  39. )
  40. args: array(
  41. )
  42. )
  43. )
  44. 2: Stmt_Expression(
  45. expr: Expr_ArrayDimFetch(
  46. var: Expr_New(
  47. class: Name(
  48. parts: array(
  49. 0: A
  50. )
  51. )
  52. args: array(
  53. )
  54. )
  55. dim: Scalar_String(
  56. value: b
  57. )
  58. )
  59. )
  60. 3: Stmt_Expression(
  61. expr: Expr_ArrayDimFetch(
  62. var: Expr_ArrayDimFetch(
  63. var: Expr_New(
  64. class: Name(
  65. parts: array(
  66. 0: A
  67. )
  68. )
  69. args: array(
  70. )
  71. )
  72. dim: Scalar_String(
  73. value: b
  74. )
  75. )
  76. dim: Scalar_String(
  77. value: c
  78. )
  79. )
  80. )
  81. )