array_map_variation10.phpt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. --TEST--
  2. Test array_map() function : usage variations - anonymous callback function
  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 anoymous callback function with following variations
  11. */
  12. echo "*** Testing array_map() : anonymous callback function ***\n";
  13. $array1 = array(1, 2, 3);
  14. $array2 = array(3, 4, 5);
  15. echo "-- anonymous function with all parameters and body --\n";
  16. var_dump( array_map( function($a, $b) { return array($a, $b); }, $array1, $array2));
  17. echo "-- anonymous function with two parameters and passing one array --\n";
  18. try {
  19. var_dump( array_map( function($a, $b) { return array($a, $b); }, $array1));
  20. } catch (Throwable $e) {
  21. echo "Exception: " . $e->getMessage() . "\n";
  22. }
  23. echo "-- anonymous function with NULL parameter --\n";
  24. var_dump( array_map( function() { return NULL; }, $array1));
  25. echo "-- anonymous function with NULL body --\n";
  26. var_dump( array_map( function($a) { }, $array1));
  27. echo "-- passing NULL as 'arr1' --\n";
  28. var_dump( array_map( function($a) { return array($a); }, NULL));
  29. echo "Done";
  30. ?>
  31. --EXPECTF--
  32. *** Testing array_map() : anonymous callback function ***
  33. -- anonymous function with all parameters and body --
  34. array(3) {
  35. [0]=>
  36. array(2) {
  37. [0]=>
  38. int(1)
  39. [1]=>
  40. int(3)
  41. }
  42. [1]=>
  43. array(2) {
  44. [0]=>
  45. int(2)
  46. [1]=>
  47. int(4)
  48. }
  49. [2]=>
  50. array(2) {
  51. [0]=>
  52. int(3)
  53. [1]=>
  54. int(5)
  55. }
  56. }
  57. -- anonymous function with two parameters and passing one array --
  58. Exception: Too few arguments to function {closure}(), 1 passed and exactly 2 expected
  59. -- anonymous function with NULL parameter --
  60. array(3) {
  61. [0]=>
  62. NULL
  63. [1]=>
  64. NULL
  65. [2]=>
  66. NULL
  67. }
  68. -- anonymous function with NULL body --
  69. array(3) {
  70. [0]=>
  71. NULL
  72. [1]=>
  73. NULL
  74. [2]=>
  75. NULL
  76. }
  77. -- passing NULL as 'arr1' --
  78. Warning: array_map(): Expected parameter 2 to be an array, null given in %s on line %d
  79. NULL
  80. Done