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