array_map_variation14.phpt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. --TEST--
  2. Test array_map() function : usage variations - null value for 'callback' argument
  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 null values for $callback argument and testing whether shortest
  11. * array will be extended with empty elements
  12. */
  13. echo "*** Testing array_map() : null value for 'callback' argument ***\n";
  14. // arrays to be passed as arguments
  15. $arr1 = array(1, 2);
  16. $arr2 = array("one", "two");
  17. $arr3 = array(1.1, 2.2);
  18. // get an unset variable
  19. $unset_var = 10;
  20. unset ($unset_var);
  21. /* calling array_map() with null callback */
  22. echo "-- with null --\n";
  23. var_dump( array_map(null, $arr1, $arr2, $arr3) );
  24. var_dump( array_map(NULL, $arr1, $arr2, $arr3) );
  25. echo "-- with unset variable --\n";
  26. var_dump( array_map(@$unset_var, $arr1, $arr2, $arr3) );
  27. echo "-- with undefined variable --\n";
  28. var_dump( array_map(@$undefined_var, $arr1) );
  29. echo "-- with empty string --\n";
  30. var_dump( array_map("", $arr1, $arr2) );
  31. echo "-- with empty array --\n";
  32. var_dump( array_map(array(), $arr1, $arr2) );
  33. echo "Done";
  34. ?>
  35. --EXPECTF--
  36. *** Testing array_map() : null value for 'callback' argument ***
  37. -- with null --
  38. array(2) {
  39. [0]=>
  40. array(3) {
  41. [0]=>
  42. int(1)
  43. [1]=>
  44. string(3) "one"
  45. [2]=>
  46. float(1.1)
  47. }
  48. [1]=>
  49. array(3) {
  50. [0]=>
  51. int(2)
  52. [1]=>
  53. string(3) "two"
  54. [2]=>
  55. float(2.2)
  56. }
  57. }
  58. array(2) {
  59. [0]=>
  60. array(3) {
  61. [0]=>
  62. int(1)
  63. [1]=>
  64. string(3) "one"
  65. [2]=>
  66. float(1.1)
  67. }
  68. [1]=>
  69. array(3) {
  70. [0]=>
  71. int(2)
  72. [1]=>
  73. string(3) "two"
  74. [2]=>
  75. float(2.2)
  76. }
  77. }
  78. -- with unset variable --
  79. array(2) {
  80. [0]=>
  81. array(3) {
  82. [0]=>
  83. int(1)
  84. [1]=>
  85. string(3) "one"
  86. [2]=>
  87. float(1.1)
  88. }
  89. [1]=>
  90. array(3) {
  91. [0]=>
  92. int(2)
  93. [1]=>
  94. string(3) "two"
  95. [2]=>
  96. float(2.2)
  97. }
  98. }
  99. -- with undefined variable --
  100. array(2) {
  101. [0]=>
  102. int(1)
  103. [1]=>
  104. int(2)
  105. }
  106. -- with empty string --
  107. Warning: array_map() expects parameter 1 to be a valid callback, function '' not found or invalid function name in %s on line %d
  108. NULL
  109. -- with empty array --
  110. Warning: array_map() expects parameter 1 to be a valid callback, array must have exactly two members in %s on line %d
  111. NULL
  112. Done