view vendor/nikic/php-parser/test/code/parser/expr/uvs/new.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
UVS new expressions
-----
<?php
new $className;
new $array['className'];
new $array{'className'};
new $obj->className;
new Test::$className;
new $test::$className;
new $weird[0]->foo::$className;
-----
!!php7
array(
    0: Stmt_Expression(
        expr: Expr_New(
            class: Expr_Variable(
                name: className
            )
            args: array(
            )
        )
    )
    1: Stmt_Expression(
        expr: Expr_New(
            class: Expr_ArrayDimFetch(
                var: Expr_Variable(
                    name: array
                )
                dim: Scalar_String(
                    value: className
                )
            )
            args: array(
            )
        )
    )
    2: Stmt_Expression(
        expr: Expr_New(
            class: Expr_ArrayDimFetch(
                var: Expr_Variable(
                    name: array
                )
                dim: Scalar_String(
                    value: className
                )
            )
            args: array(
            )
        )
    )
    3: Stmt_Expression(
        expr: Expr_New(
            class: Expr_PropertyFetch(
                var: Expr_Variable(
                    name: obj
                )
                name: Identifier(
                    name: className
                )
            )
            args: array(
            )
        )
    )
    4: Stmt_Expression(
        expr: Expr_New(
            class: Expr_StaticPropertyFetch(
                class: Name(
                    parts: array(
                        0: Test
                    )
                )
                name: VarLikeIdentifier(
                    name: className
                )
            )
            args: array(
            )
        )
    )
    5: Stmt_Expression(
        expr: Expr_New(
            class: Expr_StaticPropertyFetch(
                class: Expr_Variable(
                    name: test
                )
                name: VarLikeIdentifier(
                    name: className
                )
            )
            args: array(
            )
        )
    )
    6: Stmt_Expression(
        expr: Expr_New(
            class: Expr_StaticPropertyFetch(
                class: Expr_PropertyFetch(
                    var: Expr_ArrayDimFetch(
                        var: Expr_Variable(
                            name: weird
                        )
                        dim: Scalar_LNumber(
                            value: 0
                        )
                    )
                    name: Identifier(
                        name: foo
                    )
                )
                name: VarLikeIdentifier(
                    name: className
                )
            )
            args: array(
            )
        )
    )
)