array_map_variation13.phpt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. --TEST--
  2. Test array_map() function : usage variations - callback function with different return types
  3. --FILE--
  4. <?php
  5. /* Prototype : array array_map ( callback $callback , array $arr1 [, array $... ] )
  6. * Description: Applies the callback to the elements of the given arrays
  7. * Source code: ext/standard/array.c
  8. */
  9. /*
  10. * Test array_map() by passing different callback function returning:
  11. * int, string, bool, null values
  12. */
  13. echo "*** Testing array_map() : callback with diff return value ***\n";
  14. $array1 = array(1, 2, 3);
  15. $array2 = array(3, 4, 5);
  16. echo "-- with integer return value --\n";
  17. function callback_int($a, $b)
  18. {
  19. return $a + $b;
  20. }
  21. var_dump( array_map('callback_int', $array1, $array2));
  22. echo "-- with string return value --\n";
  23. function callback_string($a, $b)
  24. {
  25. return "$a"."$b";
  26. }
  27. var_dump( array_map('callback_string', $array1, $array2));
  28. echo "-- with bool return value --\n";
  29. function callback_bool($a, $b)
  30. {
  31. return TRUE;
  32. }
  33. var_dump( array_map('callback_bool', $array1, $array2));
  34. echo "-- with null return value --\n";
  35. function callback_null($array1)
  36. {
  37. return NULL;
  38. }
  39. var_dump( array_map('callback_null', $array1));
  40. echo "-- with no return value --\n";
  41. function callback_without_ret($arr1)
  42. {
  43. echo "callback_without_ret called\n";
  44. }
  45. var_dump( array_map('callback_without_ret', $array1));
  46. echo "Done";
  47. ?>
  48. --EXPECTF--
  49. *** Testing array_map() : callback with diff return value ***
  50. -- with integer return value --
  51. array(3) {
  52. [0]=>
  53. int(4)
  54. [1]=>
  55. int(6)
  56. [2]=>
  57. int(8)
  58. }
  59. -- with string return value --
  60. array(3) {
  61. [0]=>
  62. string(2) "13"
  63. [1]=>
  64. string(2) "24"
  65. [2]=>
  66. string(2) "35"
  67. }
  68. -- with bool return value --
  69. array(3) {
  70. [0]=>
  71. bool(true)
  72. [1]=>
  73. bool(true)
  74. [2]=>
  75. bool(true)
  76. }
  77. -- with null return value --
  78. array(3) {
  79. [0]=>
  80. NULL
  81. [1]=>
  82. NULL
  83. [2]=>
  84. NULL
  85. }
  86. -- with no return value --
  87. callback_without_ret called
  88. callback_without_ret called
  89. callback_without_ret called
  90. array(3) {
  91. [0]=>
  92. NULL
  93. [1]=>
  94. NULL
  95. [2]=>
  96. NULL
  97. }
  98. Done