array_walk_variation1.phpt 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. --TEST--
  2. Test array_walk() function : usage variations - unexpected values for 'input' argument
  3. --FILE--
  4. <?php
  5. /* Prototype : bool array_walk(array $input, string $funcname [, mixed $userdata])
  6. * Description: Apply a user function to every member of an array
  7. * Source code: ext/standard/array.c
  8. */
  9. /*
  10. * Passing different scalar/nonscalar values in place of 'input' argument
  11. */
  12. echo "*** Testing array_walk() : unexpected values for 'input' argument ***\n";
  13. // callback function
  14. /* Prototype : callback(mixed $value, mixed $key)
  15. * Parameters : $value - values given in input array
  16. * $key - keys given in input array
  17. * Description : Function prints each element of an array with key
  18. */
  19. function callback($value, $key)
  20. {
  21. echo "key : ";
  22. var_dump($key);
  23. echo "value : ";
  24. var_dump($value);
  25. }
  26. // extra parameter passed to array_walk()
  27. $user_data = 10;
  28. // get an unset variable
  29. $unset_var = 10;
  30. unset ($unset_var);
  31. // get resource variable
  32. $fp = fopen(__FILE__, 'r');
  33. // different scalar/nonscalar values to be used in place of an 'input' argument
  34. $input_values = array(
  35. // int data
  36. /* 1*/ 0,
  37. 1,
  38. 12345,
  39. -2345,
  40. // float data
  41. /* 5*/ 10.5,
  42. -10.5,
  43. 10.1234567e8,
  44. 10.7654321E-8,
  45. .5,
  46. // null data
  47. /* 10*/ NULL,
  48. null,
  49. // boolean data
  50. /* 12*/ true,
  51. false,
  52. TRUE,
  53. FALSE,
  54. // empty data
  55. /* 16*/ "",
  56. '',
  57. // string data
  58. /* 18*/ "string",
  59. 'string',
  60. // resource data
  61. $fp,
  62. // undefined data
  63. @$undefined_var,
  64. // unset data
  65. /* 22*/ @$unset_var,
  66. );
  67. for($count = 0; $count < count($input_values); $count++) {
  68. echo "-- Iteration ".($count + 1)." --\n";
  69. var_dump( array_walk($input_values[$count], "callback") );
  70. var_dump( array_walk($input_values[$count], "callback", $user_data) );
  71. }
  72. fclose($fp);
  73. echo "Done"
  74. ?>
  75. --EXPECTF--
  76. *** Testing array_walk() : unexpected values for 'input' argument ***
  77. -- Iteration 1 --
  78. Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d
  79. NULL
  80. Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d
  81. NULL
  82. -- Iteration 2 --
  83. Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d
  84. NULL
  85. Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d
  86. NULL
  87. -- Iteration 3 --
  88. Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d
  89. NULL
  90. Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d
  91. NULL
  92. -- Iteration 4 --
  93. Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d
  94. NULL
  95. Warning: array_walk() expects parameter 1 to be array, integer given in %s on line %d
  96. NULL
  97. -- Iteration 5 --
  98. Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d
  99. NULL
  100. Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d
  101. NULL
  102. -- Iteration 6 --
  103. Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d
  104. NULL
  105. Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d
  106. NULL
  107. -- Iteration 7 --
  108. Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d
  109. NULL
  110. Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d
  111. NULL
  112. -- Iteration 8 --
  113. Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d
  114. NULL
  115. Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d
  116. NULL
  117. -- Iteration 9 --
  118. Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d
  119. NULL
  120. Warning: array_walk() expects parameter 1 to be array, double given in %s on line %d
  121. NULL
  122. -- Iteration 10 --
  123. Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d
  124. NULL
  125. Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d
  126. NULL
  127. -- Iteration 11 --
  128. Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d
  129. NULL
  130. Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d
  131. NULL
  132. -- Iteration 12 --
  133. Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d
  134. NULL
  135. Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d
  136. NULL
  137. -- Iteration 13 --
  138. Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d
  139. NULL
  140. Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d
  141. NULL
  142. -- Iteration 14 --
  143. Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d
  144. NULL
  145. Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d
  146. NULL
  147. -- Iteration 15 --
  148. Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d
  149. NULL
  150. Warning: array_walk() expects parameter 1 to be array, boolean given in %s on line %d
  151. NULL
  152. -- Iteration 16 --
  153. Warning: array_walk() expects parameter 1 to be array, string given in %s on line %d
  154. NULL
  155. Warning: array_walk() expects parameter 1 to be array, string given in %s on line %d
  156. NULL
  157. -- Iteration 17 --
  158. Warning: array_walk() expects parameter 1 to be array, string given in %s on line %d
  159. NULL
  160. Warning: array_walk() expects parameter 1 to be array, string given in %s on line %d
  161. NULL
  162. -- Iteration 18 --
  163. Warning: array_walk() expects parameter 1 to be array, string given in %s on line %d
  164. NULL
  165. Warning: array_walk() expects parameter 1 to be array, string given in %s on line %d
  166. NULL
  167. -- Iteration 19 --
  168. Warning: array_walk() expects parameter 1 to be array, string given in %s on line %d
  169. NULL
  170. Warning: array_walk() expects parameter 1 to be array, string given in %s on line %d
  171. NULL
  172. -- Iteration 20 --
  173. Warning: array_walk() expects parameter 1 to be array, resource given in %s on line %d
  174. NULL
  175. Warning: array_walk() expects parameter 1 to be array, resource given in %s on line %d
  176. NULL
  177. -- Iteration 21 --
  178. Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d
  179. NULL
  180. Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d
  181. NULL
  182. -- Iteration 22 --
  183. Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d
  184. NULL
  185. Warning: array_walk() expects parameter 1 to be array, null given in %s on line %d
  186. NULL
  187. Done