array_merge_variation9.phpt 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. --TEST--
  2. Test array_merge() function : usage variations - referenced variables
  3. --FILE--
  4. <?php
  5. /* Prototype : array array_merge(array $arr1, array $arr2 [, array $...])
  6. * Description: Merges elements from passed arrays into one array
  7. * Source code: ext/standard/array.c
  8. */
  9. /* Test array_merge() when:
  10. * 1. Passed an array made up of referenced variables
  11. * 2. Passed an array as the first argument and a reference to that array as the second.
  12. */
  13. echo "*** Testing array_merge() : usage variations ***\n";
  14. $val1 = 'foo';
  15. $val2 = 'bar';
  16. $val3 = 'baz';
  17. $arr1 = array(&$val1, &$val2, &$val3);
  18. $arr2 = array('key1' => 'val1', 'key2' => 'val2', 'key3' => 'val3');
  19. echo "\n-- Merge an array made up of referenced variables to an assoc. array --\n";
  20. var_dump(array_merge($arr1, $arr2));
  21. var_dump(array_merge($arr2, $arr1));
  22. $val2 = 'hello world';
  23. echo "\n-- Change \$val2 --\n";
  24. var_dump(array_merge($arr1, $arr2));
  25. var_dump(array_merge($arr2, $arr1));
  26. echo "Done";
  27. ?>
  28. --EXPECT--
  29. *** Testing array_merge() : usage variations ***
  30. -- Merge an array made up of referenced variables to an assoc. array --
  31. array(6) {
  32. [0]=>
  33. &string(3) "foo"
  34. [1]=>
  35. &string(3) "bar"
  36. [2]=>
  37. &string(3) "baz"
  38. ["key1"]=>
  39. string(4) "val1"
  40. ["key2"]=>
  41. string(4) "val2"
  42. ["key3"]=>
  43. string(4) "val3"
  44. }
  45. array(6) {
  46. ["key1"]=>
  47. string(4) "val1"
  48. ["key2"]=>
  49. string(4) "val2"
  50. ["key3"]=>
  51. string(4) "val3"
  52. [0]=>
  53. &string(3) "foo"
  54. [1]=>
  55. &string(3) "bar"
  56. [2]=>
  57. &string(3) "baz"
  58. }
  59. -- Change $val2 --
  60. array(6) {
  61. [0]=>
  62. &string(3) "foo"
  63. [1]=>
  64. &string(11) "hello world"
  65. [2]=>
  66. &string(3) "baz"
  67. ["key1"]=>
  68. string(4) "val1"
  69. ["key2"]=>
  70. string(4) "val2"
  71. ["key3"]=>
  72. string(4) "val3"
  73. }
  74. array(6) {
  75. ["key1"]=>
  76. string(4) "val1"
  77. ["key2"]=>
  78. string(4) "val2"
  79. ["key3"]=>
  80. string(4) "val3"
  81. [0]=>
  82. &string(3) "foo"
  83. [1]=>
  84. &string(11) "hello world"
  85. [2]=>
  86. &string(3) "baz"
  87. }
  88. Done