1--TEST-- 2Test is_numeric() function 3--FILE-- 4<?php 5echo "*** Testing is_numeric() with valid numeric values ***\n"; 6// different valid numeric values 7$numerics = array( 8 0, 9 1, 10 -1, 11 -0, 12 +0, 13 0.0, 14 -0.0, 15 +0.0, 16 1.0, 17 -1.0, 18 +1.0, 19 .5, 20 -.5, 21 +.5, 22 -.5e-2, 23 .5e-2, 24 +.5e-2, 25 +.5E+2, 26 0.70000000, 27 +0.70000000, 28 -0.70000000, 29 1234567890123456, 30 -1234567890123456, 31 984847472827282718178, 32 -984847472827282718178, 33 123.56e30, 34 123.56E30, 35 426.45e-30, 36 5657.3E-40, 37 3486.36e+40, 38 3486.36E+90, 39 -3486.36E+10, 40 -3486.36e+80, 41 -426.45e-50, 42 -426.45E-99, 43 1e2, 44 -1e2, 45 -1e-2, 46 +1e2, 47 +1e+2, 48 +1e-2, 49 +1e+2, 50 2245555555555555.444, 51 1.444444444444444444, 52 0xff, // hexa decimal numbers 53 0xFF, 54 //0x1111111111111111111111, 55 -0x1111111, 56 +0x6698319, 57 01000000000000000000000, 58 0123, 59 0345, 60 -0200001, 61 -0200001.7, 62 0200001.7, 63 +0200001, 64 +0200001.7, 65 +0200001.7, 66 2.00000000000000000000001, // a float value with more precision points 67 "1", // numeric in the form of string 68 "-1", 69 "1e2", 70 " 1", 71 "1 ", 72 "2974394749328742328432", 73 "-1e-2", 74 '1', 75 '-1', 76 '1e2', 77 ' 1', 78 '1 ', 79 '2974394749328742328432', 80 '-1e-2', 81 "0123", 82 '0123', 83 "-0123", 84 "+0123", 85 '-0123', 86 '+0123' 87); 88/* loop to check that is_numeric() recognizes different 89 numeric values, expected output: bool(true) */ 90$loop_counter = 1; 91foreach ($numerics as $num ) { 92 echo "-- Iteration $loop_counter --\n"; $loop_counter++; 93 var_dump( is_numeric($num) ); 94} 95 96echo "\n*** Testing is_numeric() on non numeric types ***\n"; 97 98// get a resource type variable 99$fp = fopen (__FILE__, "r"); 100$dfp = opendir ( __DIR__ ); 101 102// unset variable 103$unset_var = 10.5; 104unset ($unset_var); 105 106// other types in a array 107$not_numerics = array( 108 "0x80001", 109 "-0x80001", 110 "+0x80001", 111 "-0x80001.5", 112 "0x80001.5", 113 new stdclass, // object 114 $fp, // resource 115 $dfp, 116 array(), 117 array("string"), 118 "", 119 "- 1", 120 "1.2.4", 121 "1e7.6", 122 "3FF", 123 "20 test", 124 "3.6test", 125 "1,000", 126 "NULL", 127 "true", 128 true, 129 NULL, 130 null, 131 TRUE, 132 FALSE, 133 false, 134 @$unset_var, // unset variable 135 @$undefined_var 136); 137/* loop through the $not_numerics to see working of 138 is_numeric() on non numeric values, expected output: bool(false) */ 139$loop_counter = 1; 140foreach ($not_numerics as $type ) { 141 echo "-- Iteration $loop_counter --\n"; $loop_counter++; 142 var_dump( is_numeric($type) ); 143} 144 145echo "Done\n"; 146 147// close the resources used 148fclose($fp); 149closedir($dfp); 150 151?> 152--EXPECT-- 153*** Testing is_numeric() with valid numeric values *** 154-- Iteration 1 -- 155bool(true) 156-- Iteration 2 -- 157bool(true) 158-- Iteration 3 -- 159bool(true) 160-- Iteration 4 -- 161bool(true) 162-- Iteration 5 -- 163bool(true) 164-- Iteration 6 -- 165bool(true) 166-- Iteration 7 -- 167bool(true) 168-- Iteration 8 -- 169bool(true) 170-- Iteration 9 -- 171bool(true) 172-- Iteration 10 -- 173bool(true) 174-- Iteration 11 -- 175bool(true) 176-- Iteration 12 -- 177bool(true) 178-- Iteration 13 -- 179bool(true) 180-- Iteration 14 -- 181bool(true) 182-- Iteration 15 -- 183bool(true) 184-- Iteration 16 -- 185bool(true) 186-- Iteration 17 -- 187bool(true) 188-- Iteration 18 -- 189bool(true) 190-- Iteration 19 -- 191bool(true) 192-- Iteration 20 -- 193bool(true) 194-- Iteration 21 -- 195bool(true) 196-- Iteration 22 -- 197bool(true) 198-- Iteration 23 -- 199bool(true) 200-- Iteration 24 -- 201bool(true) 202-- Iteration 25 -- 203bool(true) 204-- Iteration 26 -- 205bool(true) 206-- Iteration 27 -- 207bool(true) 208-- Iteration 28 -- 209bool(true) 210-- Iteration 29 -- 211bool(true) 212-- Iteration 30 -- 213bool(true) 214-- Iteration 31 -- 215bool(true) 216-- Iteration 32 -- 217bool(true) 218-- Iteration 33 -- 219bool(true) 220-- Iteration 34 -- 221bool(true) 222-- Iteration 35 -- 223bool(true) 224-- Iteration 36 -- 225bool(true) 226-- Iteration 37 -- 227bool(true) 228-- Iteration 38 -- 229bool(true) 230-- Iteration 39 -- 231bool(true) 232-- Iteration 40 -- 233bool(true) 234-- Iteration 41 -- 235bool(true) 236-- Iteration 42 -- 237bool(true) 238-- Iteration 43 -- 239bool(true) 240-- Iteration 44 -- 241bool(true) 242-- Iteration 45 -- 243bool(true) 244-- Iteration 46 -- 245bool(true) 246-- Iteration 47 -- 247bool(true) 248-- Iteration 48 -- 249bool(true) 250-- Iteration 49 -- 251bool(true) 252-- Iteration 50 -- 253bool(true) 254-- Iteration 51 -- 255bool(true) 256-- Iteration 52 -- 257bool(true) 258-- Iteration 53 -- 259bool(true) 260-- Iteration 54 -- 261bool(true) 262-- Iteration 55 -- 263bool(true) 264-- Iteration 56 -- 265bool(true) 266-- Iteration 57 -- 267bool(true) 268-- Iteration 58 -- 269bool(true) 270-- Iteration 59 -- 271bool(true) 272-- Iteration 60 -- 273bool(true) 274-- Iteration 61 -- 275bool(true) 276-- Iteration 62 -- 277bool(true) 278-- Iteration 63 -- 279bool(true) 280-- Iteration 64 -- 281bool(true) 282-- Iteration 65 -- 283bool(true) 284-- Iteration 66 -- 285bool(true) 286-- Iteration 67 -- 287bool(true) 288-- Iteration 68 -- 289bool(true) 290-- Iteration 69 -- 291bool(true) 292-- Iteration 70 -- 293bool(true) 294-- Iteration 71 -- 295bool(true) 296-- Iteration 72 -- 297bool(true) 298-- Iteration 73 -- 299bool(true) 300-- Iteration 74 -- 301bool(true) 302-- Iteration 75 -- 303bool(true) 304-- Iteration 76 -- 305bool(true) 306-- Iteration 77 -- 307bool(true) 308-- Iteration 78 -- 309bool(true) 310 311*** Testing is_numeric() on non numeric types *** 312-- Iteration 1 -- 313bool(false) 314-- Iteration 2 -- 315bool(false) 316-- Iteration 3 -- 317bool(false) 318-- Iteration 4 -- 319bool(false) 320-- Iteration 5 -- 321bool(false) 322-- Iteration 6 -- 323bool(false) 324-- Iteration 7 -- 325bool(false) 326-- Iteration 8 -- 327bool(false) 328-- Iteration 9 -- 329bool(false) 330-- Iteration 10 -- 331bool(false) 332-- Iteration 11 -- 333bool(false) 334-- Iteration 12 -- 335bool(false) 336-- Iteration 13 -- 337bool(false) 338-- Iteration 14 -- 339bool(false) 340-- Iteration 15 -- 341bool(false) 342-- Iteration 16 -- 343bool(false) 344-- Iteration 17 -- 345bool(false) 346-- Iteration 18 -- 347bool(false) 348-- Iteration 19 -- 349bool(false) 350-- Iteration 20 -- 351bool(false) 352-- Iteration 21 -- 353bool(false) 354-- Iteration 22 -- 355bool(false) 356-- Iteration 23 -- 357bool(false) 358-- Iteration 24 -- 359bool(false) 360-- Iteration 25 -- 361bool(false) 362-- Iteration 26 -- 363bool(false) 364-- Iteration 27 -- 365bool(false) 366-- Iteration 28 -- 367bool(false) 368Done 369