HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: /home/mmickelson/spilicensing/vendor/nikic/php-parser/test/code/parser/stmt/loop/foreach.test
Foreach loop
-----
<?php

// foreach on variable
foreach ($a as $b)  {}
foreach ($a as &$b) {}
foreach ($a as $b => $c) {}
foreach ($a as $b => &$c) {}
foreach ($a as list($a, $b)) {}
foreach ($a as $a => list($b, , $c)) {}

// foreach on expression
foreach (array() as $b) {}

// alternative syntax
foreach ($a as $b):
endforeach;
-----
array(
    0: Stmt_Foreach(
        expr: Expr_Variable(
            name: a
        )
        keyVar: null
        byRef: false
        valueVar: Expr_Variable(
            name: b
        )
        stmts: array(
        )
    )
    1: Stmt_Foreach(
        expr: Expr_Variable(
            name: a
        )
        keyVar: null
        byRef: true
        valueVar: Expr_Variable(
            name: b
        )
        stmts: array(
        )
    )
    2: Stmt_Foreach(
        expr: Expr_Variable(
            name: a
        )
        keyVar: Expr_Variable(
            name: b
        )
        byRef: false
        valueVar: Expr_Variable(
            name: c
        )
        stmts: array(
        )
    )
    3: Stmt_Foreach(
        expr: Expr_Variable(
            name: a
        )
        keyVar: Expr_Variable(
            name: b
        )
        byRef: true
        valueVar: Expr_Variable(
            name: c
        )
        stmts: array(
        )
    )
    4: Stmt_Foreach(
        expr: Expr_Variable(
            name: a
        )
        keyVar: null
        byRef: false
        valueVar: Expr_List(
            vars: array(
                0: Expr_Variable(
                    name: a
                )
                1: Expr_Variable(
                    name: b
                )
            )
        )
        stmts: array(
        )
    )
    5: Stmt_Foreach(
        expr: Expr_Variable(
            name: a
        )
        keyVar: Expr_Variable(
            name: a
        )
        byRef: false
        valueVar: Expr_List(
            vars: array(
                0: Expr_Variable(
                    name: b
                )
                1: null
                2: Expr_Variable(
                    name: c
                )
            )
        )
        stmts: array(
        )
    )
    6: Stmt_Foreach(
        expr: Expr_Array(
            items: array(
            )
        )
        keyVar: null
        byRef: false
        valueVar: Expr_Variable(
            name: b
        )
        stmts: array(
        )
    )
    7: Stmt_Foreach(
        expr: Expr_Variable(
            name: a
        )
        keyVar: null
        byRef: false
        valueVar: Expr_Variable(
            name: b
        )
        stmts: array(
        )
    )
)