bug26639.phpt 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. --TEST--
  2. Bug #26639 (mb_convert_variables() clutters variables beyond the references)
  3. --SKIPIF--
  4. <?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
  5. --FILE--
  6. <?php
  7. $a = "あいうえお";
  8. $b = $a;
  9. mb_convert_variables("EUC-JP", "Shift_JIS", $b);
  10. debug_zval_dump($a);
  11. debug_zval_dump($b);
  12. unset($a);
  13. unset($b);
  14. $a = "あいうえお";
  15. $b = &$a;
  16. mb_convert_variables("EUC-JP", "Shift_JIS", $b);
  17. debug_zval_dump($a);
  18. debug_zval_dump($b);
  19. unset($a);
  20. unset($b);
  21. $a = "あいうえお";
  22. $b = array($a);
  23. $c = $b;
  24. mb_convert_variables("EUC-JP", "Shift_JIS", $c);
  25. debug_zval_dump($b);
  26. debug_zval_dump($c);
  27. unset($a);
  28. unset($b);
  29. unset($c);
  30. $a = "あいうえお";
  31. $b = array(&$a);
  32. $c = $b;
  33. mb_convert_variables("EUC-JP", "Shift_JIS", $c);
  34. debug_zval_dump($b);
  35. debug_zval_dump($c);
  36. unset($a);
  37. unset($b);
  38. unset($c);
  39. $a = "あいうえお";
  40. $b = array($a);
  41. $c = &$b;
  42. mb_convert_variables("EUC-JP", "Shift_JIS", $c);
  43. debug_zval_dump($b);
  44. debug_zval_dump($c);
  45. unset($a);
  46. unset($b);
  47. unset($c);
  48. $a = "あいうえお";
  49. $b = array(&$a);
  50. $c = &$b;
  51. mb_convert_variables("EUC-JP", "Shift_JIS", $c);
  52. debug_zval_dump($b);
  53. debug_zval_dump($c);
  54. unset($a);
  55. unset($b);
  56. unset($c);
  57. $a = array(array("あいうえお"));
  58. $b = $a;
  59. $c = $b;
  60. mb_convert_variables("EUC-JP", "Shift_JIS", $c);
  61. debug_zval_dump($b);
  62. debug_zval_dump($c);
  63. unset($a);
  64. unset($b);
  65. unset($c);
  66. ?>
  67. --EXPECT--
  68. string(10) "あいうえお" refcount(2)
  69. string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
  70. string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
  71. string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
  72. array(1) refcount(2){
  73. [0]=>
  74. string(10) "あいうえお" refcount(2)
  75. }
  76. array(1) refcount(2){
  77. [0]=>
  78. string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
  79. }
  80. array(1) refcount(2){
  81. [0]=>
  82. &string(10) "あいうえお" refcount(2)
  83. }
  84. array(1) refcount(2){
  85. [0]=>
  86. string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
  87. }
  88. array(1) refcount(1){
  89. [0]=>
  90. string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
  91. }
  92. array(1) refcount(1){
  93. [0]=>
  94. string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
  95. }
  96. array(1) refcount(1){
  97. [0]=>
  98. string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
  99. }
  100. array(1) refcount(1){
  101. [0]=>
  102. string(10) "、「、、、ヲ、ィ、ェ" refcount(2)
  103. }
  104. array(1) refcount(3){
  105. [0]=>
  106. array(1) refcount(1){
  107. [0]=>
  108. string(10) "あいうえお" refcount(1)
  109. }
  110. }
  111. array(1) refcount(2){
  112. [0]=>
  113. array(1) refcount(1){
  114. [0]=>
  115. string(10) "、「、、、ヲ、ィ、ェ" refcount(1)
  116. }
  117. }