nullsafe.test 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. Nullsafe operator
  2. -----
  3. <?php
  4. $a?->b;
  5. $a?->b($c);
  6. new $a?->b;
  7. "{$a?->b}";
  8. "$a?->b";
  9. -----
  10. array(
  11. 0: Stmt_Expression(
  12. expr: Expr_NullsafePropertyFetch(
  13. var: Expr_Variable(
  14. name: a
  15. )
  16. name: Identifier(
  17. name: b
  18. )
  19. )
  20. )
  21. 1: Stmt_Expression(
  22. expr: Expr_NullsafeMethodCall(
  23. var: Expr_Variable(
  24. name: a
  25. )
  26. name: Identifier(
  27. name: b
  28. )
  29. args: array(
  30. 0: Arg(
  31. name: null
  32. value: Expr_Variable(
  33. name: c
  34. )
  35. byRef: false
  36. unpack: false
  37. )
  38. )
  39. )
  40. )
  41. 2: Stmt_Expression(
  42. expr: Expr_New(
  43. class: Expr_NullsafePropertyFetch(
  44. var: Expr_Variable(
  45. name: a
  46. )
  47. name: Identifier(
  48. name: b
  49. )
  50. )
  51. args: array(
  52. )
  53. )
  54. )
  55. 3: Stmt_Expression(
  56. expr: Scalar_InterpolatedString(
  57. parts: array(
  58. 0: Expr_NullsafePropertyFetch(
  59. var: Expr_Variable(
  60. name: a
  61. )
  62. name: Identifier(
  63. name: b
  64. )
  65. )
  66. )
  67. )
  68. )
  69. 4: Stmt_Expression(
  70. expr: Scalar_InterpolatedString(
  71. parts: array(
  72. 0: Expr_NullsafePropertyFetch(
  73. var: Expr_Variable(
  74. name: a
  75. )
  76. name: Identifier(
  77. name: b
  78. )
  79. )
  80. )
  81. )
  82. )
  83. )