bug81011.phpt 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. --TEST--
  2. Bug #81011 (mb_convert_encoding removes references from arrays)
  3. --EXTENSIONS--
  4. mbstring
  5. --FILE--
  6. <?php
  7. $array = [
  8. 'ads' => [
  9. 123 => ['name' => 'this', 'id' => 444],
  10. 234 => ['name' => 'that', 'id' => 555],
  11. ],
  12. 'other' => ['one', 'two']
  13. ];
  14. // we modify array elements using reference
  15. foreach( $array['ads'] as &$ad ){
  16. $ad['premium'] = (int)($ad['id'] == 555);
  17. }
  18. var_dump($array);
  19. var_dump(mb_convert_encoding($array, 'UTF-8', 'UTF-8'));
  20. ?>
  21. --EXPECT--
  22. array(2) {
  23. ["ads"]=>
  24. array(2) {
  25. [123]=>
  26. array(3) {
  27. ["name"]=>
  28. string(4) "this"
  29. ["id"]=>
  30. int(444)
  31. ["premium"]=>
  32. int(0)
  33. }
  34. [234]=>
  35. &array(3) {
  36. ["name"]=>
  37. string(4) "that"
  38. ["id"]=>
  39. int(555)
  40. ["premium"]=>
  41. int(1)
  42. }
  43. }
  44. ["other"]=>
  45. array(2) {
  46. [0]=>
  47. string(3) "one"
  48. [1]=>
  49. string(3) "two"
  50. }
  51. }
  52. array(2) {
  53. ["ads"]=>
  54. array(2) {
  55. [123]=>
  56. array(3) {
  57. ["name"]=>
  58. string(4) "this"
  59. ["id"]=>
  60. int(444)
  61. ["premium"]=>
  62. int(0)
  63. }
  64. [234]=>
  65. array(3) {
  66. ["name"]=>
  67. string(4) "that"
  68. ["id"]=>
  69. int(555)
  70. ["premium"]=>
  71. int(1)
  72. }
  73. }
  74. ["other"]=>
  75. array(2) {
  76. [0]=>
  77. string(3) "one"
  78. [1]=>
  79. string(3) "two"
  80. }
  81. }