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