)
)
)
+)
+-----
+<?php
+
+class Foo {
+ publi $foo;
+ public $bar;
+}
+-----
+!!php7
+Syntax error, unexpected T_STRING from 4:5 to 4:9
+array(
+ 0: Stmt_Class(
+ flags: 0
+ name: Identifier(
+ name: Foo
+ )
+ extends: null
+ implements: array(
+ )
+ stmts: array(
+ 0: Stmt_Property(
+ flags: MODIFIER_PUBLIC (1)
+ props: array(
+ 0: Stmt_PropertyProperty(
+ name: VarLikeIdentifier(
+ name: bar
+ )
+ default: null
+ )
+ )
+ )
+ )
+ )
+)
+-----
+<?php
+
+foreach ($foo) { $bar; }
+foreach ($foo as ) { $bar; }
+-----
+!!php7
+Syntax error, unexpected ')' from 3:14 to 3:14
+Syntax error, unexpected ')' from 4:18 to 4:18
+array(
+ 0: Stmt_Foreach(
+ expr: Expr_Variable(
+ name: foo
+ )
+ keyVar: null
+ byRef: false
+ valueVar: Expr_Error(
+ )
+ stmts: array(
+ 0: Stmt_Expression(
+ expr: Expr_Variable(
+ name: bar
+ )
+ )
+ )
+ )
+ 1: Stmt_Foreach(
+ expr: Expr_Variable(
+ name: foo
+ )
+ keyVar: null
+ byRef: false
+ valueVar: Expr_Error(
+ )
+ stmts: array(
+ 0: Stmt_Expression(
+ expr: Expr_Variable(
+ name: bar
+ )
+ )
+ )
+ )
+)
+-----
+<?php
+
+function foo(Type) {
+ $foo;
+}
+
+function foo(Type1 $foo, Type2) {
+ $bar;
+}
+
+function foo(...) {
+ $baz;
+}
+
+function foo(&) {
+ $qux;
+}
+
+function foo(Bar)
+
+class Bar {
+ function foo(Baz)
+}
+
+function(Foo);
+-----
+!!php7
+Syntax error, unexpected ')', expecting T_VARIABLE from 3:18 to 3:18
+Syntax error, unexpected ')', expecting T_VARIABLE from 7:31 to 7:31
+Syntax error, unexpected ')', expecting T_VARIABLE from 11:17 to 11:17
+Syntax error, unexpected ')', expecting T_VARIABLE from 15:15 to 15:15
+Syntax error, unexpected ')', expecting T_VARIABLE from 19:17 to 19:17
+Syntax error, unexpected ')', expecting T_VARIABLE from 22:21 to 22:21
+Syntax error, unexpected ')', expecting T_VARIABLE from 25:13 to 25:13
+array(
+ 0: Stmt_Function(
+ byRef: false
+ name: Identifier(
+ name: foo
+ )
+ params: array(
+ 0: Param(
+ type: Name(
+ parts: array(
+ 0: Type
+ )
+ )
+ byRef: false
+ variadic: false
+ var: Expr_Error(
+ )
+ default: null
+ )
+ )
+ returnType: null
+ stmts: array(
+ 0: Stmt_Expression(
+ expr: Expr_Variable(
+ name: foo
+ )
+ )
+ )
+ )
+ 1: Stmt_Function(
+ byRef: false
+ name: Identifier(
+ name: foo
+ )
+ params: array(
+ 0: Param(
+ type: Name(
+ parts: array(
+ 0: Type1
+ )
+ )
+ byRef: false
+ variadic: false
+ var: Expr_Variable(
+ name: foo
+ )
+ default: null
+ )
+ 1: Param(
+ type: Name(
+ parts: array(
+ 0: Type2
+ )
+ )
+ byRef: false
+ variadic: false
+ var: Expr_Error(
+ )
+ default: null
+ )
+ )
+ returnType: null
+ stmts: array(
+ 0: Stmt_Expression(
+ expr: Expr_Variable(
+ name: bar
+ )
+ )
+ )
+ )
+ 2: Stmt_Function(
+ byRef: false
+ name: Identifier(
+ name: foo
+ )
+ params: array(
+ 0: Param(
+ type: null
+ byRef: false
+ variadic: true
+ var: Expr_Error(
+ )
+ default: null
+ )
+ )
+ returnType: null
+ stmts: array(
+ 0: Stmt_Expression(
+ expr: Expr_Variable(
+ name: baz
+ )
+ )
+ )
+ )
+ 3: Stmt_Function(
+ byRef: false
+ name: Identifier(
+ name: foo
+ )
+ params: array(
+ 0: Param(
+ type: null
+ byRef: true
+ variadic: false
+ var: Expr_Error(
+ )
+ default: null
+ )
+ )
+ returnType: null
+ stmts: array(
+ 0: Stmt_Expression(
+ expr: Expr_Variable(
+ name: qux
+ )
+ )
+ )
+ )
+ 4: Stmt_Function(
+ byRef: false
+ name: Identifier(
+ name: foo
+ )
+ params: array(
+ 0: Param(
+ type: Name(
+ parts: array(
+ 0: Bar
+ )
+ )
+ byRef: false
+ variadic: false
+ var: Expr_Error(
+ )
+ default: null
+ )
+ )
+ returnType: null
+ stmts: array(
+ )
+ )
+ 5: Stmt_Class(
+ flags: 0
+ name: Identifier(
+ name: Bar
+ )
+ extends: null
+ implements: array(
+ )
+ stmts: array(
+ 0: Stmt_ClassMethod(
+ flags: 0
+ byRef: false
+ name: Identifier(
+ name: foo
+ )
+ params: array(
+ 0: Param(
+ type: Name(
+ parts: array(
+ 0: Baz
+ )
+ )
+ byRef: false
+ variadic: false
+ var: Expr_Error(
+ )
+ default: null
+ )
+ )
+ returnType: null
+ stmts: array(
+ )
+ )
+ )
+ )
+ 6: Stmt_Expression(
+ expr: Expr_Closure(
+ static: false
+ byRef: false
+ params: array(
+ 0: Param(
+ type: Name(
+ parts: array(
+ 0: Foo
+ )
+ )
+ byRef: false
+ variadic: false
+ var: Expr_Error(
+ )
+ default: null
+ )
+ )
+ uses: array(
+ )
+ returnType: null
+ stmts: array(
+ )
+ )
+ )
+)
+-----
+<?php
+$array = [
+ $this->value $oopsAnotherValue->get()
+];
+$array = [
+ $value $oopsAnotherValue
+];
+$array = [
+ 'key' => $value $oopsAnotherValue
+];
+-----
+!!php7
+Syntax error, unexpected T_VARIABLE, expecting ',' or ')' or ']' from 3:18 to 3:34
+Syntax error, unexpected T_VARIABLE, expecting ',' or ')' or ']' from 6:12 to 6:28
+Syntax error, unexpected T_VARIABLE, expecting ',' or ')' or ']' from 9:21 to 9:37
+array(
+ 0: Stmt_Expression(
+ expr: Expr_Assign(
+ var: Expr_Variable(
+ name: array
+ )
+ expr: Expr_Array(
+ items: array(
+ 0: Expr_ArrayItem(
+ key: null
+ value: Expr_PropertyFetch(
+ var: Expr_Variable(
+ name: this
+ )
+ name: Identifier(
+ name: value
+ )
+ )
+ byRef: false
+ )
+ 1: Expr_ArrayItem(
+ key: null
+ value: Expr_MethodCall(
+ var: Expr_Variable(
+ name: oopsAnotherValue
+ )
+ name: Identifier(
+ name: get
+ )
+ args: array(
+ )
+ )
+ byRef: false
+ )
+ )
+ )
+ )
+ )
+ 1: Stmt_Expression(
+ expr: Expr_Assign(
+ var: Expr_Variable(
+ name: array
+ )
+ expr: Expr_Array(
+ items: array(
+ 0: Expr_ArrayItem(
+ key: null
+ value: Expr_Variable(
+ name: value
+ )
+ byRef: false
+ )
+ 1: Expr_ArrayItem(
+ key: null
+ value: Expr_Variable(
+ name: oopsAnotherValue
+ )
+ byRef: false
+ )
+ )
+ )
+ )
+ )
+ 2: Stmt_Expression(
+ expr: Expr_Assign(
+ var: Expr_Variable(
+ name: array
+ )
+ expr: Expr_Array(
+ items: array(
+ 0: Expr_ArrayItem(
+ key: Scalar_String(
+ value: key
+ )
+ value: Expr_Variable(
+ name: value
+ )
+ byRef: false
+ )
+ 1: Expr_ArrayItem(
+ key: null
+ value: Expr_Variable(
+ name: oopsAnotherValue
+ )
+ byRef: false
+ )
+ )
+ )
+ )
+ )
)
\ No newline at end of file