static_variation_002.phpt 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. --TEST--
  2. Static variables in methods & nested functions & evals.
  3. --FILE--
  4. <?php
  5. Class C {
  6. function f() {
  7. static $a = array(1,2,3);
  8. eval(' static $k = array(4,5,6); ');
  9. function cfg() {
  10. static $a = array(7,8,9);
  11. eval(' static $k = array(10,11,12); ');
  12. var_dump($a, $k);
  13. }
  14. var_dump($a, $k);
  15. }
  16. }
  17. $c = new C;
  18. $c->f();
  19. cfg();
  20. Class D {
  21. static function f() {
  22. eval('function dfg() { static $b = array(1,2,3); var_dump($b); } ');
  23. }
  24. }
  25. D::f();
  26. dfg();
  27. eval(' Class E { function f() { static $c = array(1,2,3); var_dump($c); } }');
  28. $e = new E;
  29. $e->f();
  30. ?>
  31. --EXPECT--
  32. array(3) {
  33. [0]=>
  34. int(1)
  35. [1]=>
  36. int(2)
  37. [2]=>
  38. int(3)
  39. }
  40. array(3) {
  41. [0]=>
  42. int(4)
  43. [1]=>
  44. int(5)
  45. [2]=>
  46. int(6)
  47. }
  48. array(3) {
  49. [0]=>
  50. int(7)
  51. [1]=>
  52. int(8)
  53. [2]=>
  54. int(9)
  55. }
  56. array(3) {
  57. [0]=>
  58. int(10)
  59. [1]=>
  60. int(11)
  61. [2]=>
  62. int(12)
  63. }
  64. array(3) {
  65. [0]=>
  66. int(1)
  67. [1]=>
  68. int(2)
  69. [2]=>
  70. int(3)
  71. }
  72. array(3) {
  73. [0]=>
  74. int(1)
  75. [1]=>
  76. int(2)
  77. [2]=>
  78. int(3)
  79. }