Security update for Core, with self-updated composer
[yaffs-website] / vendor / nikic / php-parser / test / code / parser / stmt / loop / foreach.test
1 Foreach loop
2 -----
3 <?php
4
5 // foreach on variable
6 foreach ($a as $b)  {}
7 foreach ($a as &$b) {}
8 foreach ($a as $b => $c) {}
9 foreach ($a as $b => &$c) {}
10 foreach ($a as list($a, $b)) {}
11 foreach ($a as $a => list($b, , $c)) {}
12
13 // foreach on expression
14 foreach (array() as $b) {}
15
16 // alternative syntax
17 foreach ($a as $b):
18 endforeach;
19 -----
20 array(
21     0: Stmt_Foreach(
22         expr: Expr_Variable(
23             name: a
24         )
25         keyVar: null
26         byRef: false
27         valueVar: Expr_Variable(
28             name: b
29         )
30         stmts: array(
31         )
32         comments: array(
33             0: // foreach on variable
34         )
35     )
36     1: Stmt_Foreach(
37         expr: Expr_Variable(
38             name: a
39         )
40         keyVar: null
41         byRef: true
42         valueVar: Expr_Variable(
43             name: b
44         )
45         stmts: array(
46         )
47     )
48     2: Stmt_Foreach(
49         expr: Expr_Variable(
50             name: a
51         )
52         keyVar: Expr_Variable(
53             name: b
54         )
55         byRef: false
56         valueVar: Expr_Variable(
57             name: c
58         )
59         stmts: array(
60         )
61     )
62     3: Stmt_Foreach(
63         expr: Expr_Variable(
64             name: a
65         )
66         keyVar: Expr_Variable(
67             name: b
68         )
69         byRef: true
70         valueVar: Expr_Variable(
71             name: c
72         )
73         stmts: array(
74         )
75     )
76     4: Stmt_Foreach(
77         expr: Expr_Variable(
78             name: a
79         )
80         keyVar: null
81         byRef: false
82         valueVar: Expr_List(
83             items: array(
84                 0: Expr_ArrayItem(
85                     key: null
86                     value: Expr_Variable(
87                         name: a
88                     )
89                     byRef: false
90                 )
91                 1: Expr_ArrayItem(
92                     key: null
93                     value: Expr_Variable(
94                         name: b
95                     )
96                     byRef: false
97                 )
98             )
99         )
100         stmts: array(
101         )
102     )
103     5: Stmt_Foreach(
104         expr: Expr_Variable(
105             name: a
106         )
107         keyVar: Expr_Variable(
108             name: a
109         )
110         byRef: false
111         valueVar: Expr_List(
112             items: array(
113                 0: Expr_ArrayItem(
114                     key: null
115                     value: Expr_Variable(
116                         name: b
117                     )
118                     byRef: false
119                 )
120                 1: null
121                 2: Expr_ArrayItem(
122                     key: null
123                     value: Expr_Variable(
124                         name: c
125                     )
126                     byRef: false
127                 )
128             )
129         )
130         stmts: array(
131         )
132     )
133     6: Stmt_Foreach(
134         expr: Expr_Array(
135             items: array(
136             )
137         )
138         keyVar: null
139         byRef: false
140         valueVar: Expr_Variable(
141             name: b
142         )
143         stmts: array(
144         )
145         comments: array(
146             0: // foreach on expression
147         )
148     )
149     7: Stmt_Foreach(
150         expr: Expr_Variable(
151             name: a
152         )
153         keyVar: null
154         byRef: false
155         valueVar: Expr_Variable(
156             name: b
157         )
158         stmts: array(
159         )
160         comments: array(
161             0: // alternative syntax
162         )
163     )
164 )