File tree Expand file tree Collapse file tree 1 file changed +91
-0
lines changed
Zend/tests/arrow_functions Expand file tree Collapse file tree 1 file changed +91
-0
lines changed Original file line number Diff line number Diff line change 1+ --TEST--
2+ Arrow functions auto-capture variables, by value.
3+ --FILE--
4+ <?php
5+
6+ $ a = 0 ;
7+ $ fn = fn () {
8+ var_dump (isset ($ a ));
9+ $ a = 1 ;
10+ var_dump ($ a );
11+ };
12+ var_dump ($ a );
13+ $ fn ();
14+ var_dump ($ a );
15+
16+ $ a = 2 ;
17+ $ fn = fn () {
18+ $ a ++;
19+ var_dump ($ a );
20+ };
21+ var_dump ($ a );
22+ $ fn ();
23+ var_dump ($ a );
24+
25+ $ a = 3 ;
26+ $ fn = fn () {
27+ if (false ) $ a = 4 ;
28+ var_dump ($ a );
29+ };
30+ var_dump ($ a );
31+ $ fn ();
32+ var_dump ($ a );
33+
34+ $ a = 5 ;
35+ $ fn = fn () {
36+ var_dump ($ a );
37+ if (false ) $ a = 6 ;
38+ };
39+ var_dump ($ a );
40+ $ fn ();
41+ var_dump ($ a );
42+
43+ $ a = 7 ;
44+ $ fn = fn () {
45+ unset($ a);
46+ var_dump (isset ($ a ));
47+ };
48+ var_dump ($ a );
49+ $ fn ();
50+ var_dump ($ a );
51+
52+ $ a = 8 ;
53+ $ fn = fn () {
54+ $ a = 9 ;
55+ unset($ a );
56+ var_dump (isset ($ a ));
57+ };
58+ var_dump ($ a );
59+ $ fn ();
60+ var_dump ($ a );
61+
62+ $ a = 10 ;
63+ $ fn = fn () { return fn () { var_dump ($ a ); }; };
64+ var_dump ($ a );
65+ $ fn ()();
66+ var_dump ($ a );
67+
68+ ?>
69+ --EXPECT--
70+ int(0)
71+ bool(true)
72+ int(1)
73+ int(0)
74+ int(2)
75+ int(3)
76+ int(2)
77+ int(3)
78+ int(3)
79+ int(3)
80+ int(5)
81+ int(5)
82+ int(5)
83+ int(7)
84+ bool(false)
85+ int(7)
86+ int(8)
87+ bool(false)
88+ int(8)
89+ int(10)
90+ int(10)
91+ int(10)
You can’t perform that action at this time.
0 commit comments