1--TEST-- 2Test count_chars() function : usage variations - test values for $string argument 3--FILE-- 4<?php 5 6/* Prototype : mixed count_chars ( string $string [, int $mode ] ) 7 * Description: Return information about characters used in a string 8 * Source code: ext/standard/string.c 9*/ 10 11echo "*** Testing count_chars() function: with unexpected inputs for 'string' 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 $input 28$inputs = 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.1234567e10, 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 $inputs array to test count_chars() function 72$count = 1; 73foreach($inputs as $input) { 74 echo "-- Iteration $count --\n"; 75 // only list characters with a frequency > 0 76 var_dump(count_chars($input, 1)); 77 $count ++; 78} 79 80fclose($file_handle); //closing the file handle 81 82?> 83===DONE=== 84--EXPECTF-- 85*** Testing count_chars() function: with unexpected inputs for 'string' argument *** 86-- Iteration 1 -- 87array(1) { 88 [48]=> 89 int(1) 90} 91-- Iteration 2 -- 92array(1) { 93 [49]=> 94 int(1) 95} 96-- Iteration 3 -- 97array(2) { 98 [50]=> 99 int(1) 100 [53]=> 101 int(2) 102} 103-- Iteration 4 -- 104array(3) { 105 [50]=> 106 int(1) 107 [53]=> 108 int(1) 109 [54]=> 110 int(1) 111} 112-- Iteration 5 -- 113array(7) { 114 [49]=> 115 int(1) 116 [50]=> 117 int(1) 118 [51]=> 119 int(1) 120 [52]=> 121 int(3) 122 [54]=> 123 int(1) 124 [55]=> 125 int(2) 126 [56]=> 127 int(1) 128} 129-- Iteration 6 -- 130array(8) { 131 [45]=> 132 int(1) 133 [49]=> 134 int(1) 135 [50]=> 136 int(1) 137 [51]=> 138 int(1) 139 [52]=> 140 int(3) 141 [54]=> 142 int(1) 143 [55]=> 144 int(1) 145 [56]=> 146 int(2) 147} 148-- Iteration 7 -- 149array(4) { 150 [46]=> 151 int(1) 152 [48]=> 153 int(1) 154 [49]=> 155 int(1) 156 [53]=> 157 int(1) 158} 159-- Iteration 8 -- 160array(5) { 161 [45]=> 162 int(1) 163 [46]=> 164 int(1) 165 [48]=> 166 int(1) 167 [50]=> 168 int(1) 169 [53]=> 170 int(1) 171} 172-- Iteration 9 -- 173array(8) { 174 [48]=> 175 int(4) 176 [49]=> 177 int(2) 178 [50]=> 179 int(1) 180 [51]=> 181 int(1) 182 [52]=> 183 int(1) 184 [53]=> 185 int(1) 186 [54]=> 187 int(1) 188 [55]=> 189 int(1) 190} 191-- Iteration 10 -- 192 193Warning: count_chars() expects parameter 1 to be string, array given in %s on line %d 194NULL 195-- Iteration 11 -- 196 197Warning: count_chars() expects parameter 1 to be string, array given in %s on line %d 198NULL 199-- Iteration 12 -- 200 201Warning: count_chars() expects parameter 1 to be string, array given in %s on line %d 202NULL 203-- Iteration 13 -- 204array(1) { 205 [49]=> 206 int(1) 207} 208-- Iteration 14 -- 209array(0) { 210} 211-- Iteration 15 -- 212array(1) { 213 [49]=> 214 int(1) 215} 216-- Iteration 16 -- 217array(0) { 218} 219-- Iteration 17 -- 220array(0) { 221} 222-- Iteration 18 -- 223array(0) { 224} 225-- Iteration 19 -- 226array(12) { 227 [32]=> 228 int(1) 229 [97]=> 230 int(1) 231 [98]=> 232 int(1) 233 [99]=> 234 int(1) 235 [101]=> 236 int(2) 237 [106]=> 238 int(1) 239 [108]=> 240 int(1) 241 [109]=> 242 int(1) 243 [111]=> 244 int(1) 245 [112]=> 246 int(1) 247 [115]=> 248 int(1) 249 [116]=> 250 int(1) 251} 252-- Iteration 20 -- 253 254Warning: count_chars() expects parameter 1 to be string, resource given in %s on line %d 255NULL 256-- Iteration 21 -- 257array(0) { 258} 259-- Iteration 22 -- 260array(0) { 261} 262===DONE=== 263