Mercurial > hg > isophonics-drupal-site
view vendor/nikic/php-parser/test/code/parser/expr/fetchAndCall/constantDeref.test @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
Array/string dereferencing ----- <?php "abc"[2]; "abc"[2][0][0]; [1, 2, 3][2]; [1, 2, 3][2][0][0]; array(1, 2, 3)[2]; array(1, 2, 3)[2][0][0]; FOO[0]; Foo::BAR[1]; $foo::BAR[2][1][0]; ----- array( 0: Stmt_Expression( expr: Expr_ArrayDimFetch( var: Scalar_String( value: abc ) dim: Scalar_LNumber( value: 2 ) ) ) 1: Stmt_Expression( expr: Expr_ArrayDimFetch( var: Expr_ArrayDimFetch( var: Expr_ArrayDimFetch( var: Scalar_String( value: abc ) dim: Scalar_LNumber( value: 2 ) ) dim: Scalar_LNumber( value: 0 ) ) dim: Scalar_LNumber( value: 0 ) ) ) 2: Stmt_Expression( expr: Expr_ArrayDimFetch( var: Expr_Array( items: array( 0: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 1 ) byRef: false ) 1: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 2 ) byRef: false ) 2: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 3 ) byRef: false ) ) ) dim: Scalar_LNumber( value: 2 ) ) ) 3: Stmt_Expression( expr: Expr_ArrayDimFetch( var: Expr_ArrayDimFetch( var: Expr_ArrayDimFetch( var: Expr_Array( items: array( 0: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 1 ) byRef: false ) 1: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 2 ) byRef: false ) 2: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 3 ) byRef: false ) ) ) dim: Scalar_LNumber( value: 2 ) ) dim: Scalar_LNumber( value: 0 ) ) dim: Scalar_LNumber( value: 0 ) ) ) 4: Stmt_Expression( expr: Expr_ArrayDimFetch( var: Expr_Array( items: array( 0: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 1 ) byRef: false ) 1: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 2 ) byRef: false ) 2: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 3 ) byRef: false ) ) ) dim: Scalar_LNumber( value: 2 ) ) ) 5: Stmt_Expression( expr: Expr_ArrayDimFetch( var: Expr_ArrayDimFetch( var: Expr_ArrayDimFetch( var: Expr_Array( items: array( 0: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 1 ) byRef: false ) 1: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 2 ) byRef: false ) 2: Expr_ArrayItem( key: null value: Scalar_LNumber( value: 3 ) byRef: false ) ) ) dim: Scalar_LNumber( value: 2 ) ) dim: Scalar_LNumber( value: 0 ) ) dim: Scalar_LNumber( value: 0 ) ) ) 6: Stmt_Expression( expr: Expr_ArrayDimFetch( var: Expr_ConstFetch( name: Name( parts: array( 0: FOO ) ) ) dim: Scalar_LNumber( value: 0 ) ) ) 7: Stmt_Expression( expr: Expr_ArrayDimFetch( var: Expr_ClassConstFetch( class: Name( parts: array( 0: Foo ) ) name: Identifier( name: BAR ) ) dim: Scalar_LNumber( value: 1 ) ) ) 8: Stmt_Expression( expr: Expr_ArrayDimFetch( var: Expr_ArrayDimFetch( var: Expr_ArrayDimFetch( var: Expr_ClassConstFetch( class: Expr_Variable( name: foo ) name: Identifier( name: BAR ) ) dim: Scalar_LNumber( value: 2 ) ) dim: Scalar_LNumber( value: 1 ) ) dim: Scalar_LNumber( value: 0 ) ) ) )