bug70547.phpt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. --TEST--
  2. Bug #70547 (unsetting function variables corrupts backtrace)
  3. --FILE--
  4. <?php
  5. function brokenTrace($arg1, &$arg2, $arg3){
  6. backtraceWrapper();
  7. var_dump(func_get_args());
  8. unset($arg3);
  9. var_dump(func_get_arg(0));
  10. var_dump(func_get_arg(1));
  11. var_dump(func_get_arg(2));
  12. var_dump(func_get_arg(3));
  13. backtraceWrapper();
  14. unset($arg1);
  15. var_dump(func_get_args());
  16. backtraceWrapper();
  17. unset($arg2);
  18. backtraceWrapper();
  19. var_dump(func_get_arg(0));
  20. var_dump(func_get_arg(1));
  21. var_dump(func_get_arg(2));
  22. var_dump(func_get_arg(3));
  23. }
  24. $arg2 = "2nd";
  25. brokenTrace("1st", $arg2, "3th", "4th");
  26. function backtraceWrapper(){
  27. $bt = debug_backtrace();
  28. var_dump($bt[1]['args']);
  29. }
  30. ?>
  31. --EXPECT--
  32. array(4) {
  33. [0]=>
  34. string(3) "1st"
  35. [1]=>
  36. string(3) "2nd"
  37. [2]=>
  38. string(3) "3th"
  39. [3]=>
  40. string(3) "4th"
  41. }
  42. array(4) {
  43. [0]=>
  44. string(3) "1st"
  45. [1]=>
  46. string(3) "2nd"
  47. [2]=>
  48. string(3) "3th"
  49. [3]=>
  50. string(3) "4th"
  51. }
  52. string(3) "1st"
  53. string(3) "2nd"
  54. NULL
  55. string(3) "4th"
  56. array(4) {
  57. [0]=>
  58. string(3) "1st"
  59. [1]=>
  60. string(3) "2nd"
  61. [2]=>
  62. NULL
  63. [3]=>
  64. string(3) "4th"
  65. }
  66. array(4) {
  67. [0]=>
  68. NULL
  69. [1]=>
  70. string(3) "2nd"
  71. [2]=>
  72. NULL
  73. [3]=>
  74. string(3) "4th"
  75. }
  76. array(4) {
  77. [0]=>
  78. NULL
  79. [1]=>
  80. string(3) "2nd"
  81. [2]=>
  82. NULL
  83. [3]=>
  84. string(3) "4th"
  85. }
  86. array(4) {
  87. [0]=>
  88. NULL
  89. [1]=>
  90. NULL
  91. [2]=>
  92. NULL
  93. [3]=>
  94. string(3) "4th"
  95. }
  96. NULL
  97. NULL
  98. NULL
  99. string(3) "4th"