explode_variation2.phpt 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. --TEST--
  2. Test explode() function : usage variations - test values for $string 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 'string' 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 $string
  22. $strings = 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.1234567e10,
  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 $strings array to test explode() function
  56. $count = 1;
  57. $delimiter = " ";
  58. $limit = 5;
  59. foreach($strings as $string) {
  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 'string' argument ***
  69. -- Iteration 1 --
  70. array(1) {
  71. [0]=>
  72. string(1) "0"
  73. }
  74. -- Iteration 2 --
  75. array(1) {
  76. [0]=>
  77. string(1) "1"
  78. }
  79. -- Iteration 3 --
  80. array(1) {
  81. [0]=>
  82. string(3) "255"
  83. }
  84. -- Iteration 4 --
  85. array(1) {
  86. [0]=>
  87. string(3) "256"
  88. }
  89. -- Iteration 5 --
  90. array(1) {
  91. [0]=>
  92. string(10) "2147483647"
  93. }
  94. -- Iteration 6 --
  95. array(1) {
  96. [0]=>
  97. string(11) "-2147483648"
  98. }
  99. -- Iteration 7 --
  100. array(1) {
  101. [0]=>
  102. string(4) "10.5"
  103. }
  104. -- Iteration 8 --
  105. array(1) {
  106. [0]=>
  107. string(5) "-20.5"
  108. }
  109. -- Iteration 9 --
  110. array(1) {
  111. [0]=>
  112. string(12) "101234567000"
  113. }
  114. -- Iteration 10 --
  115. Warning: explode() expects parameter 2 to be string, array given in %s on line %d
  116. NULL
  117. -- Iteration 11 --
  118. Warning: explode() expects parameter 2 to be string, array given in %s on line %d
  119. NULL
  120. -- Iteration 12 --
  121. Warning: explode() expects parameter 2 to be string, array given in %s on line %d
  122. NULL
  123. -- Iteration 13 --
  124. array(1) {
  125. [0]=>
  126. string(1) "1"
  127. }
  128. -- Iteration 14 --
  129. array(1) {
  130. [0]=>
  131. string(0) ""
  132. }
  133. -- Iteration 15 --
  134. array(1) {
  135. [0]=>
  136. string(1) "1"
  137. }
  138. -- Iteration 16 --
  139. array(1) {
  140. [0]=>
  141. string(0) ""
  142. }
  143. -- Iteration 17 --
  144. array(1) {
  145. [0]=>
  146. string(0) ""
  147. }
  148. -- Iteration 18 --
  149. array(1) {
  150. [0]=>
  151. string(0) ""
  152. }
  153. -- Iteration 19 --
  154. array(2) {
  155. [0]=>
  156. string(6) "sample"
  157. [1]=>
  158. string(6) "object"
  159. }
  160. -- Iteration 20 --
  161. Warning: explode() expects parameter 2 to be string, resource given in %s on line %d
  162. NULL
  163. -- Iteration 21 --
  164. array(1) {
  165. [0]=>
  166. string(0) ""
  167. }
  168. -- Iteration 22 --
  169. array(1) {
  170. [0]=>
  171. string(0) ""
  172. }
  173. ===DONE===