explode_variation3.phpt 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. --TEST--
  2. Test explode() function : usage variations - test values for $limit argument
  3. --FILE--
  4. <?php
  5. /* Prototype : array explode ( string $delimiter , string $string [, int $limit ] )
  6. * Description: Split a string by string.
  7. * Source code: ext/standard/string.c
  8. */
  9. echo "*** Testing explode() function: with unexpected inputs for 'limit' argument ***\n";
  10. //get an unset variable
  11. $unset_var = 'string_val';
  12. unset($unset_var);
  13. //defining a class
  14. class sample {
  15. public function __toString() {
  16. return "sample object";
  17. }
  18. }
  19. //getting the resource
  20. $file_handle = fopen(__FILE__, "r");
  21. // array with different values for $delimiter
  22. $limits = array (
  23. // integer values
  24. /*1*/ 0,
  25. 1,
  26. 255,
  27. 256,
  28. 2147483647,
  29. -2147483648,
  30. // float values
  31. /*7*/ 10.5,
  32. -20.5,
  33. 10.1234567e5,
  34. // array values
  35. /*10*/ array(),
  36. array(0),
  37. array(1, 2),
  38. // boolean values
  39. /*13*/ true,
  40. false,
  41. TRUE,
  42. FALSE,
  43. // null values
  44. /*17*/ NULL,
  45. null,
  46. // objects
  47. /*19*/ new sample(),
  48. // resource
  49. /*20*/ $file_handle,
  50. // undefined variable
  51. /*21*/ @$undefined_var,
  52. // unset variable
  53. /*22*/ @$unset_var
  54. );
  55. // loop through with each element of the $limits array to test explode() function
  56. $count = 1;
  57. $delimiter = " ";
  58. $string = "piece1 piece2 piece3 piece4 piece5 piece6";
  59. foreach($limits as $limit) {
  60. echo "-- Iteration $count --\n";
  61. var_dump( explode($delimiter, $string, $limit) );
  62. $count ++;
  63. }
  64. fclose($file_handle); //closing the file handle
  65. ?>
  66. ===Done===
  67. --EXPECTF--
  68. *** Testing explode() function: with unexpected inputs for 'limit' argument ***
  69. -- Iteration 1 --
  70. array(1) {
  71. [0]=>
  72. string(41) "piece1 piece2 piece3 piece4 piece5 piece6"
  73. }
  74. -- Iteration 2 --
  75. array(1) {
  76. [0]=>
  77. string(41) "piece1 piece2 piece3 piece4 piece5 piece6"
  78. }
  79. -- Iteration 3 --
  80. array(6) {
  81. [0]=>
  82. string(6) "piece1"
  83. [1]=>
  84. string(6) "piece2"
  85. [2]=>
  86. string(6) "piece3"
  87. [3]=>
  88. string(6) "piece4"
  89. [4]=>
  90. string(6) "piece5"
  91. [5]=>
  92. string(6) "piece6"
  93. }
  94. -- Iteration 4 --
  95. array(6) {
  96. [0]=>
  97. string(6) "piece1"
  98. [1]=>
  99. string(6) "piece2"
  100. [2]=>
  101. string(6) "piece3"
  102. [3]=>
  103. string(6) "piece4"
  104. [4]=>
  105. string(6) "piece5"
  106. [5]=>
  107. string(6) "piece6"
  108. }
  109. -- Iteration 5 --
  110. array(6) {
  111. [0]=>
  112. string(6) "piece1"
  113. [1]=>
  114. string(6) "piece2"
  115. [2]=>
  116. string(6) "piece3"
  117. [3]=>
  118. string(6) "piece4"
  119. [4]=>
  120. string(6) "piece5"
  121. [5]=>
  122. string(6) "piece6"
  123. }
  124. -- Iteration 6 --
  125. array(0) {
  126. }
  127. -- Iteration 7 --
  128. array(6) {
  129. [0]=>
  130. string(6) "piece1"
  131. [1]=>
  132. string(6) "piece2"
  133. [2]=>
  134. string(6) "piece3"
  135. [3]=>
  136. string(6) "piece4"
  137. [4]=>
  138. string(6) "piece5"
  139. [5]=>
  140. string(6) "piece6"
  141. }
  142. -- Iteration 8 --
  143. array(0) {
  144. }
  145. -- Iteration 9 --
  146. array(6) {
  147. [0]=>
  148. string(6) "piece1"
  149. [1]=>
  150. string(6) "piece2"
  151. [2]=>
  152. string(6) "piece3"
  153. [3]=>
  154. string(6) "piece4"
  155. [4]=>
  156. string(6) "piece5"
  157. [5]=>
  158. string(6) "piece6"
  159. }
  160. -- Iteration 10 --
  161. Warning: explode() expects parameter 3 to be long, array given in %s on line %d
  162. NULL
  163. -- Iteration 11 --
  164. Warning: explode() expects parameter 3 to be long, array given in %s on line %d
  165. NULL
  166. -- Iteration 12 --
  167. Warning: explode() expects parameter 3 to be long, array given in %s on line %d
  168. NULL
  169. -- Iteration 13 --
  170. array(1) {
  171. [0]=>
  172. string(41) "piece1 piece2 piece3 piece4 piece5 piece6"
  173. }
  174. -- Iteration 14 --
  175. array(1) {
  176. [0]=>
  177. string(41) "piece1 piece2 piece3 piece4 piece5 piece6"
  178. }
  179. -- Iteration 15 --
  180. array(1) {
  181. [0]=>
  182. string(41) "piece1 piece2 piece3 piece4 piece5 piece6"
  183. }
  184. -- Iteration 16 --
  185. array(1) {
  186. [0]=>
  187. string(41) "piece1 piece2 piece3 piece4 piece5 piece6"
  188. }
  189. -- Iteration 17 --
  190. array(1) {
  191. [0]=>
  192. string(41) "piece1 piece2 piece3 piece4 piece5 piece6"
  193. }
  194. -- Iteration 18 --
  195. array(1) {
  196. [0]=>
  197. string(41) "piece1 piece2 piece3 piece4 piece5 piece6"
  198. }
  199. -- Iteration 19 --
  200. Warning: explode() expects parameter 3 to be long, object given in %s on line %d
  201. NULL
  202. -- Iteration 20 --
  203. Warning: explode() expects parameter 3 to be long, resource given in %s on line %d
  204. NULL
  205. -- Iteration 21 --
  206. array(1) {
  207. [0]=>
  208. string(41) "piece1 piece2 piece3 piece4 piece5 piece6"
  209. }
  210. -- Iteration 22 --
  211. array(1) {
  212. [0]=>
  213. string(41) "piece1 piece2 piece3 piece4 piece5 piece6"
  214. }
  215. ===Done===