1Object access 2----- 3<?php 4 5// property fetch variations 6$a->b; 7$a->b['c']; 8$a->b{'c'}; 9 10// method call variations 11$a->b(); 12$a->{'b'}(); 13$a->$b(); 14$a->$b['c'](); 15 16// array dereferencing 17$a->b()['c']; 18$a->b(){'c'}; 19----- 20array( 21 0: Stmt_Expression( 22 expr: Expr_PropertyFetch( 23 var: Expr_Variable( 24 name: a 25 ) 26 name: Identifier( 27 name: b 28 ) 29 ) 30 comments: array( 31 0: // property fetch variations 32 ) 33 ) 34 1: Stmt_Expression( 35 expr: Expr_ArrayDimFetch( 36 var: Expr_PropertyFetch( 37 var: Expr_Variable( 38 name: a 39 ) 40 name: Identifier( 41 name: b 42 ) 43 ) 44 dim: Scalar_String( 45 value: c 46 ) 47 ) 48 ) 49 2: Stmt_Expression( 50 expr: Expr_ArrayDimFetch( 51 var: Expr_PropertyFetch( 52 var: Expr_Variable( 53 name: a 54 ) 55 name: Identifier( 56 name: b 57 ) 58 ) 59 dim: Scalar_String( 60 value: c 61 ) 62 ) 63 ) 64 3: Stmt_Expression( 65 expr: Expr_MethodCall( 66 var: Expr_Variable( 67 name: a 68 ) 69 name: Identifier( 70 name: b 71 ) 72 args: array( 73 ) 74 ) 75 comments: array( 76 0: // method call variations 77 ) 78 ) 79 4: Stmt_Expression( 80 expr: Expr_MethodCall( 81 var: Expr_Variable( 82 name: a 83 ) 84 name: Scalar_String( 85 value: b 86 ) 87 args: array( 88 ) 89 ) 90 ) 91 5: Stmt_Expression( 92 expr: Expr_MethodCall( 93 var: Expr_Variable( 94 name: a 95 ) 96 name: Expr_Variable( 97 name: b 98 ) 99 args: array( 100 ) 101 ) 102 ) 103 6: Stmt_Expression( 104 expr: Expr_FuncCall( 105 name: Expr_ArrayDimFetch( 106 var: Expr_PropertyFetch( 107 var: Expr_Variable( 108 name: a 109 ) 110 name: Expr_Variable( 111 name: b 112 ) 113 ) 114 dim: Scalar_String( 115 value: c 116 ) 117 ) 118 args: array( 119 ) 120 ) 121 ) 122 7: Stmt_Expression( 123 expr: Expr_ArrayDimFetch( 124 var: Expr_MethodCall( 125 var: Expr_Variable( 126 name: a 127 ) 128 name: Identifier( 129 name: b 130 ) 131 args: array( 132 ) 133 ) 134 dim: Scalar_String( 135 value: c 136 ) 137 ) 138 comments: array( 139 0: // array dereferencing 140 ) 141 ) 142 8: Stmt_Expression( 143 expr: Expr_ArrayDimFetch( 144 var: Expr_MethodCall( 145 var: Expr_Variable( 146 name: a 147 ) 148 name: Identifier( 149 name: b 150 ) 151 args: array( 152 ) 153 ) 154 dim: Scalar_String( 155 value: c 156 ) 157 ) 158 ) 159) 160