1--TEST-- 2Test explode() function : usage variations - test values for $delimiter 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 'delimiter' 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$delimiters = array ( 29 30 // integer values 31 0, 32 1, 33 255, 34 256, 35 PHP_INT_MAX, 36 -PHP_INT_MAX, 37 38 // float values 39 10.5, 40 -20.5, 41 10.1234567e10, 42 43 // array values 44 array(), 45 array(0), 46 array(1, 2), 47 48 // boolean values 49 true, 50 false, 51 TRUE, 52 FALSE, 53 54 // null values 55 NULL, 56 null, 57 58 // objects 59 new sample(), 60 61 // resource 62 $file_handle, 63 64 // undefined variable 65 @$undefined_var, 66 67 // unset variable 68 @$unset_var 69); 70 71// loop through with each element of the $delimiters array to test explode() function 72$count = 1; 73$string = "piece1 piece2 piece3 piece4 piece5 piece6"; 74$limit = 5; 75foreach($delimiters as $delimiter) { 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 'delimiter' argument *** 87-- Iteration 1 -- 88array(1) { 89 [0]=> 90 string(41) "piece1 piece2 piece3 piece4 piece5 piece6" 91} 92-- Iteration 2 -- 93array(2) { 94 [0]=> 95 string(5) "piece" 96 [1]=> 97 string(35) " piece2 piece3 piece4 piece5 piece6" 98} 99-- Iteration 3 -- 100array(1) { 101 [0]=> 102 string(41) "piece1 piece2 piece3 piece4 piece5 piece6" 103} 104-- Iteration 4 -- 105array(1) { 106 [0]=> 107 string(41) "piece1 piece2 piece3 piece4 piece5 piece6" 108} 109-- Iteration 5 -- 110array(1) { 111 [0]=> 112 string(41) "piece1 piece2 piece3 piece4 piece5 piece6" 113} 114-- Iteration 6 -- 115array(1) { 116 [0]=> 117 string(41) "piece1 piece2 piece3 piece4 piece5 piece6" 118} 119-- Iteration 7 -- 120array(1) { 121 [0]=> 122 string(41) "piece1 piece2 piece3 piece4 piece5 piece6" 123} 124-- Iteration 8 -- 125array(1) { 126 [0]=> 127 string(41) "piece1 piece2 piece3 piece4 piece5 piece6" 128} 129-- Iteration 9 -- 130array(1) { 131 [0]=> 132 string(41) "piece1 piece2 piece3 piece4 piece5 piece6" 133} 134-- Iteration 10 -- 135 136Warning: explode() expects parameter 1 to be string, array given in %s on line %d 137NULL 138-- Iteration 11 -- 139 140Warning: explode() expects parameter 1 to be string, array given in %s on line %d 141NULL 142-- Iteration 12 -- 143 144Warning: explode() expects parameter 1 to be string, array given in %s on line %d 145NULL 146-- Iteration 13 -- 147array(2) { 148 [0]=> 149 string(5) "piece" 150 [1]=> 151 string(35) " piece2 piece3 piece4 piece5 piece6" 152} 153-- Iteration 14 -- 154 155Warning: explode(): Empty delimiter in %s on line %d 156bool(false) 157-- Iteration 15 -- 158array(2) { 159 [0]=> 160 string(5) "piece" 161 [1]=> 162 string(35) " piece2 piece3 piece4 piece5 piece6" 163} 164-- Iteration 16 -- 165 166Warning: explode(): Empty delimiter in %s on line %d 167bool(false) 168-- Iteration 17 -- 169 170Warning: explode(): Empty delimiter in %s on line %d 171bool(false) 172-- Iteration 18 -- 173 174Warning: explode(): Empty delimiter in %s on line %d 175bool(false) 176-- Iteration 19 -- 177array(1) { 178 [0]=> 179 string(41) "piece1 piece2 piece3 piece4 piece5 piece6" 180} 181-- Iteration 20 -- 182 183Warning: explode() expects parameter 1 to be string, resource given in %s on line %d 184NULL 185-- Iteration 21 -- 186 187Warning: explode(): Empty delimiter in %s on line %d 188bool(false) 189-- Iteration 22 -- 190 191Warning: explode(): Empty delimiter in %s on line %d 192bool(false) 193===Done=== 194