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