Annotation of embedaddon/php/Zend/tests/bug53958.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #53958 (Closures can't 'use' shared variables by value and by reference)
! 3: --FILE--
! 4: <?php
! 5: // TEST 1
! 6: $a = 1;
! 7: $fn1 = function() use ($a) {echo "$a\n"; $a++;};
! 8: $fn2 = function() use ($a) {echo "$a\n"; $a++;};
! 9: $a = 5;
! 10: $fn1(); // 1
! 11: $fn2(); // 1
! 12: $fn1(); // 1
! 13: $fn2(); // 1
! 14:
! 15: // TEST 2
! 16: $b = 1;
! 17: $fn1 = function() use (&$b) {echo "$b\n"; $b++;};
! 18: $fn2 = function() use (&$b) {echo "$b\n"; $b++;};
! 19: $b = 5;
! 20: $fn1(); // 5
! 21: $fn2(); // 6
! 22: $fn1(); // 7
! 23: $fn2(); // 8
! 24:
! 25: // TEST 3
! 26: $c = 1;
! 27: $fn1 = function() use (&$c) {echo "$c\n"; $c++;};
! 28: $fn2 = function() use ($c) {echo "$c\n"; $c++;};
! 29: $c = 5;
! 30: $fn1(); // 5
! 31: $fn2(); // 1
! 32: $fn1(); // 6
! 33: $fn2(); // 1
! 34:
! 35: // TEST 4
! 36: $d = 1;
! 37: $fn1 = function() use ($d) {echo "$d\n"; $d++;};
! 38: $fn2 = function() use (&$d) {echo "$d\n"; $d++;};
! 39: $d = 5;
! 40: $fn1(); // 1
! 41: $fn2(); // 5
! 42: $fn1(); // 1
! 43: $fn2(); // 6
! 44: ?>
! 45: --EXPECT--
! 46: 1
! 47: 1
! 48: 1
! 49: 1
! 50: 5
! 51: 6
! 52: 7
! 53: 8
! 54: 5
! 55: 1
! 56: 6
! 57: 1
! 58: 1
! 59: 5
! 60: 1
! 61: 6
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>