Browse Source
Fixed Bug #53958 (Closures can't 'use' shared variables by value and by reference)
experimental/with_scalar_types
Fixed Bug #53958 (Closures can't 'use' shared variables by value and by reference)
experimental/with_scalar_types
2 changed files with 75 additions and 7 deletions
@ -0,0 +1,61 @@ |
|||
--TEST-- |
|||
Bug #53958 (Closures can't 'use' shared variables by value and by reference) |
|||
--FILE-- |
|||
<?php |
|||
// TEST 1 |
|||
$a = 1; |
|||
$fn1 = function() use ($a) {echo "$a\n"; $a++;}; |
|||
$fn2 = function() use ($a) {echo "$a\n"; $a++;}; |
|||
$a = 5; |
|||
$fn1(); // 1 |
|||
$fn2(); // 1 |
|||
$fn1(); // 1 |
|||
$fn2(); // 1 |
|||
|
|||
// TEST 2 |
|||
$b = 1; |
|||
$fn1 = function() use (&$b) {echo "$b\n"; $b++;}; |
|||
$fn2 = function() use (&$b) {echo "$b\n"; $b++;}; |
|||
$b = 5; |
|||
$fn1(); // 5 |
|||
$fn2(); // 6 |
|||
$fn1(); // 7 |
|||
$fn2(); // 8 |
|||
|
|||
// TEST 3 |
|||
$c = 1; |
|||
$fn1 = function() use (&$c) {echo "$c\n"; $c++;}; |
|||
$fn2 = function() use ($c) {echo "$c\n"; $c++;}; |
|||
$c = 5; |
|||
$fn1(); // 5 |
|||
$fn2(); // 1 |
|||
$fn1(); // 6 |
|||
$fn2(); // 1 |
|||
|
|||
// TEST 4 |
|||
$d = 1; |
|||
$fn1 = function() use ($d) {echo "$d\n"; $d++;}; |
|||
$fn2 = function() use (&$d) {echo "$d\n"; $d++;}; |
|||
$d = 5; |
|||
$fn1(); // 1 |
|||
$fn2(); // 5 |
|||
$fn1(); // 1 |
|||
$fn2(); // 6 |
|||
?> |
|||
--EXPECT-- |
|||
1 |
|||
1 |
|||
1 |
|||
1 |
|||
5 |
|||
6 |
|||
7 |
|||
8 |
|||
5 |
|||
1 |
|||
6 |
|||
1 |
|||
1 |
|||
5 |
|||
1 |
|||
6 |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue