bug75474.phpt 865 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. --TEST--
  2. Bug #75474: function scope static variables are not bound to a unique function
  3. --FILE--
  4. <?php
  5. function bar($k, $v) {
  6. static $foo = [];
  7. $foo[$k] = $v;
  8. return $foo;
  9. }
  10. var_dump(bar(0, 0));
  11. var_dump(Closure::fromCallable("bar")(1, 1));
  12. var_dump(bar(2, 2));
  13. var_dump(Closure::fromCallable("bar")(3, 3));
  14. $RF = new ReflectionFunction("bar");
  15. var_dump($RF->getClosure()(4, 4));
  16. var_dump(bar(5, 5));
  17. ?>
  18. --EXPECT--
  19. array(1) {
  20. [0]=>
  21. int(0)
  22. }
  23. array(2) {
  24. [0]=>
  25. int(0)
  26. [1]=>
  27. int(1)
  28. }
  29. array(3) {
  30. [0]=>
  31. int(0)
  32. [1]=>
  33. int(1)
  34. [2]=>
  35. int(2)
  36. }
  37. array(4) {
  38. [0]=>
  39. int(0)
  40. [1]=>
  41. int(1)
  42. [2]=>
  43. int(2)
  44. [3]=>
  45. int(3)
  46. }
  47. array(5) {
  48. [0]=>
  49. int(0)
  50. [1]=>
  51. int(1)
  52. [2]=>
  53. int(2)
  54. [3]=>
  55. int(3)
  56. [4]=>
  57. int(4)
  58. }
  59. array(6) {
  60. [0]=>
  61. int(0)
  62. [1]=>
  63. int(1)
  64. [2]=>
  65. int(2)
  66. [3]=>
  67. int(3)
  68. [4]=>
  69. int(4)
  70. [5]=>
  71. int(5)
  72. }