bug53958.phpt 858 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. // TEST 2
  15. $b = 1;
  16. $fn1 = function() use (&$b) {echo "$b\n"; $b++;};
  17. $fn2 = function() use (&$b) {echo "$b\n"; $b++;};
  18. $b = 5;
  19. $fn1(); // 5
  20. $fn2(); // 6
  21. $fn1(); // 7
  22. $fn2(); // 8
  23. // TEST 3
  24. $c = 1;
  25. $fn1 = function() use (&$c) {echo "$c\n"; $c++;};
  26. $fn2 = function() use ($c) {echo "$c\n"; $c++;};
  27. $c = 5;
  28. $fn1(); // 5
  29. $fn2(); // 1
  30. $fn1(); // 6
  31. $fn2(); // 1
  32. // TEST 4
  33. $d = 1;
  34. $fn1 = function() use ($d) {echo "$d\n"; $d++;};
  35. $fn2 = function() use (&$d) {echo "$d\n"; $d++;};
  36. $d = 5;
  37. $fn1(); // 1
  38. $fn2(); // 5
  39. $fn1(); // 1
  40. $fn2(); // 6
  41. ?>
  42. --EXPECT--
  43. 1
  44. 1
  45. 1
  46. 1
  47. 5
  48. 6
  49. 7
  50. 8
  51. 5
  52. 1
  53. 6
  54. 1
  55. 1
  56. 5
  57. 1
  58. 6