Simple fetches (array, property, constant) and calls ----- b(); // simple properties $a->b; A::$b; // simple array access $a[$b]; $a{$b}; // simple constants A; A::B; ----- array( 0: Expr_MethodCall( var: Expr_Variable( name: a ) name: b args: array( ) ) 1: Expr_PropertyFetch( var: Expr_Variable( name: a ) name: b ) 2: Expr_StaticPropertyFetch( class: Name( parts: array( 0: A ) ) name: b ) 3: Expr_ArrayDimFetch( var: Expr_Variable( name: a ) dim: Expr_Variable( name: b ) ) 4: Expr_ArrayDimFetch( var: Expr_Variable( name: a ) dim: Expr_Variable( name: b ) ) 5: Expr_ConstFetch( name: Name( parts: array( 0: A ) ) ) 6: Expr_ClassConstFetch( class: Name( parts: array( 0: A ) ) name: B ) )