Annotation of embedaddon/php/Zend/tests/bug53958.phpt, revision 1.1.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>