nullsafe.test 1.8 KB

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