1--TEST-- 2Test is_string() function 3--FILE-- 4<?php 5/* Prototype: bool is_string ( mixed $var ); 6 * Description: Finds whether the given variable is a string 7 */ 8 9echo "*** Testing is_string() with valid string values ***\n"; 10// different valid strings 11 12/* string created using Heredoc (<<<) */ 13$heredoc_string = <<<EOT 14This is string defined 15using heredoc. 16EOT; 17/* heredoc string with only numerics */ 18$heredoc_numeric_string = <<<EOT 19123456 3993 204849 string 21EOT; 22/* null heardoc string */ 23$heredoc_empty_string = <<<EOT 24EOT; 25$heredoc_null_string = <<<EOT 26NULL 27EOT; 28 29$strings = array( 30 "", 31 " ", 32 '', 33 ' ', 34 "string", 35 'string', 36 "NULL", 37 'null', 38 "FALSE", 39 'true', 40 "\x0b", 41 "\0", 42 '\0', 43 '\060', 44 "\070", 45 "0x55F", 46 "055", 47 "@#$#$%%$^^$%^%^$^&", 48 $heredoc_string, 49 $heredoc_numeric_string, 50 $heredoc_empty_string, 51 $heredoc_null_string 52); 53/* loop to check that is_string() recognizes different 54 strings, expected output bool(true) */ 55$loop_counter = 1; 56foreach ($strings as $string ) { 57 echo "-- Iteration $loop_counter --\n"; $loop_counter++; 58 var_dump( is_string($string) ); 59} 60 61echo "\n*** Testing is_string() on non string values ***\n"; 62 63// get a resource type variable 64$fp = fopen (__FILE__, "r"); 65$dfp = opendir ( dirname(__FILE__) ); 66 67// unset vars 68$unset_string1 = "string"; 69$unset_string2 = 'string'; 70$unset_heredoc = <<<EOT 71this is heredoc string 72EOT; 73// unset the vars 74unset($unset_string1, $unset_string2, $unset_heredoc); 75 76// other types in a array 77$not_strings = array ( 78 /* integers */ 79 0, 80 1, 81 -1, 82 -0, 83 543915, 84 -5322, 85 0x0, 86 0x1, 87 0x55F, 88 -0xCCF, 89 0123, 90 -0654, 91 00, 92 01, 93 94 /* floats */ 95 0.0, 96 1.0, 97 -1.0, 98 10.0000000000000000005, 99 .5e6, 100 -.5E7, 101 .5E+8, 102 -.5e+90, 103 1e5, 104 -1e5, 105 1E5, 106 -1E7, 107 108 /* objects */ 109 new stdclass, 110 111 /* resources */ 112 $fp, 113 $dfp, 114 115 /* arrays */ 116 array(), 117 array(0), 118 array(1), 119 array(NULL), 120 array(null), 121 array("string"), 122 array(true), 123 array(TRUE), 124 array(false), 125 array(FALSE), 126 array(1,2,3,4), 127 array(1 => "One", "two" => 2), 128 129 /* undefined and unset vars */ 130 @$unset_string1, 131 @$unset_string2, 132 @$unset_heredoc, 133 @$undefined_var 134); 135/* loop through the $not_strings to see working of 136 is_string() on non string types, expected output bool(false) */ 137$loop_counter = 1; 138foreach ($not_strings as $type ) { 139 echo "-- Iteration $loop_counter --\n"; $loop_counter++; 140 var_dump( is_string($type) ); 141} 142 143echo "\n*** Testing error conditions ***\n"; 144//Zero argument 145var_dump( is_string() ); 146 147//arguments more than expected 148var_dump( is_string("string", "test") ); 149 150echo "Done\n"; 151 152// close the resources used 153fclose($fp); 154closedir($dfp); 155 156?> 157--EXPECTF-- 158*** Testing is_string() with valid string values *** 159-- Iteration 1 -- 160bool(true) 161-- Iteration 2 -- 162bool(true) 163-- Iteration 3 -- 164bool(true) 165-- Iteration 4 -- 166bool(true) 167-- Iteration 5 -- 168bool(true) 169-- Iteration 6 -- 170bool(true) 171-- Iteration 7 -- 172bool(true) 173-- Iteration 8 -- 174bool(true) 175-- Iteration 9 -- 176bool(true) 177-- Iteration 10 -- 178bool(true) 179-- Iteration 11 -- 180bool(true) 181-- Iteration 12 -- 182bool(true) 183-- Iteration 13 -- 184bool(true) 185-- Iteration 14 -- 186bool(true) 187-- Iteration 15 -- 188bool(true) 189-- Iteration 16 -- 190bool(true) 191-- Iteration 17 -- 192bool(true) 193-- Iteration 18 -- 194bool(true) 195-- Iteration 19 -- 196bool(true) 197-- Iteration 20 -- 198bool(true) 199-- Iteration 21 -- 200bool(true) 201-- Iteration 22 -- 202bool(true) 203 204*** Testing is_string() on non string values *** 205-- Iteration 1 -- 206bool(false) 207-- Iteration 2 -- 208bool(false) 209-- Iteration 3 -- 210bool(false) 211-- Iteration 4 -- 212bool(false) 213-- Iteration 5 -- 214bool(false) 215-- Iteration 6 -- 216bool(false) 217-- Iteration 7 -- 218bool(false) 219-- Iteration 8 -- 220bool(false) 221-- Iteration 9 -- 222bool(false) 223-- Iteration 10 -- 224bool(false) 225-- Iteration 11 -- 226bool(false) 227-- Iteration 12 -- 228bool(false) 229-- Iteration 13 -- 230bool(false) 231-- Iteration 14 -- 232bool(false) 233-- Iteration 15 -- 234bool(false) 235-- Iteration 16 -- 236bool(false) 237-- Iteration 17 -- 238bool(false) 239-- Iteration 18 -- 240bool(false) 241-- Iteration 19 -- 242bool(false) 243-- Iteration 20 -- 244bool(false) 245-- Iteration 21 -- 246bool(false) 247-- Iteration 22 -- 248bool(false) 249-- Iteration 23 -- 250bool(false) 251-- Iteration 24 -- 252bool(false) 253-- Iteration 25 -- 254bool(false) 255-- Iteration 26 -- 256bool(false) 257-- Iteration 27 -- 258bool(false) 259-- Iteration 28 -- 260bool(false) 261-- Iteration 29 -- 262bool(false) 263-- Iteration 30 -- 264bool(false) 265-- Iteration 31 -- 266bool(false) 267-- Iteration 32 -- 268bool(false) 269-- Iteration 33 -- 270bool(false) 271-- Iteration 34 -- 272bool(false) 273-- Iteration 35 -- 274bool(false) 275-- Iteration 36 -- 276bool(false) 277-- Iteration 37 -- 278bool(false) 279-- Iteration 38 -- 280bool(false) 281-- Iteration 39 -- 282bool(false) 283-- Iteration 40 -- 284bool(false) 285-- Iteration 41 -- 286bool(false) 287-- Iteration 42 -- 288bool(false) 289-- Iteration 43 -- 290bool(false) 291-- Iteration 44 -- 292bool(false) 293-- Iteration 45 -- 294bool(false) 295 296*** Testing error conditions *** 297 298Warning: is_string() expects exactly 1 parameter, 0 given in %s on line %d 299bool(false) 300 301Warning: is_string() expects exactly 1 parameter, 2 given in %s on line %d 302bool(false) 303Done 304