misc.test 2.45 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
Uniform variable syntax in PHP 7 (misc)
-----
<?php

A::A[0];
A::A[0][1][2];
"string"->length();
(clone $obj)->b[0](1);
[0, 1][0] = 1;
-----
!!php7
array(
    0: Expr_ArrayDimFetch(
        var: Expr_ClassConstFetch(
            class: Name(
                parts: array(
                    0: A
                )
            )
            name: A
        )
        dim: Scalar_LNumber(
            value: 0
        )
    )
    1: Expr_ArrayDimFetch(
        var: Expr_ArrayDimFetch(
            var: Expr_ArrayDimFetch(
                var: Expr_ClassConstFetch(
                    class: Name(
                        parts: array(
                            0: A
                        )
                    )
                    name: A
                )
                dim: Scalar_LNumber(
                    value: 0
                )
            )
            dim: Scalar_LNumber(
                value: 1
            )
        )
        dim: Scalar_LNumber(
            value: 2
        )
    )
    2: Expr_MethodCall(
        var: Scalar_String(
            value: string
        )
        name: length
        args: array(
        )
    )
    3: Expr_FuncCall(
        name: Expr_ArrayDimFetch(
            var: Expr_PropertyFetch(
                var: Expr_Clone(
                    expr: Expr_Variable(
                        name: obj
                    )
                )
                name: b
            )
            dim: Scalar_LNumber(
                value: 0
            )
        )
        args: array(
            0: Arg(
                value: Scalar_LNumber(
                    value: 1
                )
                byRef: false
                unpack: false
            )
        )
    )
    4: Expr_Assign(
        var: Expr_ArrayDimFetch(
            var: Expr_Array(
                items: array(
                    0: Expr_ArrayItem(
                        key: null
                        value: Scalar_LNumber(
                            value: 0
                        )
                        byRef: false
                    )
                    1: Expr_ArrayItem(
                        key: null
                        value: Scalar_LNumber(
                            value: 1
                        )
                        byRef: false
                    )
                )
            )
            dim: Scalar_LNumber(
                value: 0
            )
        )
        expr: Scalar_LNumber(
            value: 1
        )
    )
)