1--TEST-- 2Test is_int() & it's FALIASes: is_long() & is_integer() functions 3--SKIPIF-- 4<?php 5if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); 6?> 7--INI-- 8precision=14 9--FILE-- 10<?php 11echo "*** Testing is_int(), is_integer() & is_long() with valid integer values ***\n"; 12// different valid integer values 13$valid_ints = array( 14 0, 15 1, 16 -1, 17 -2147483648, // max negative integer value 18 -2147483647, 19 2147483647, // max positive integer value 20 2147483640, 21 0x123B, // integer as hexadecimal 22 0x12ab, 23 0Xfff, 24 0XFA, 25 -0x80000000, // max negative integer as hexadecimal 26 0x7fffffff, // max positive integer as hexadecimal 27 0x7FFFFFFF, // max positive integer as hexadecimal 28 0123, // integer as octal 29 01, // should be quivalent to octal 1 30 -020000000000, // max negative integer as octal 31 017777777777, // max positive integer as octal 32); 33/* loop to check that is_int() recognizes different 34 integer values, expected output: bool(true) */ 35$loop_counter = 1; 36foreach ($valid_ints as $int_val ) { 37 echo "--Iteration $loop_counter--\n"; $loop_counter++; 38 var_dump( is_int($int_val) ); 39 var_dump( is_integer($int_val) ); 40 var_dump( is_long($int_val) ); 41} 42 43echo "\n*** Testing is_int(), is_integer() & is_long() with non integer values ***\n"; 44 45// resource type variable 46$fp = fopen (__FILE__, "r"); 47$dfp = opendir ( __DIR__ ); 48// unset variable 49 50$unset_var = 10; 51unset ($unset_var); 52 53// other types in a array 54$not_int_types = array ( 55 /* float values */ 56 -2147483649, // float value 57 2147483648, // float value 58 -0x80000001, // float value, beyond max negative int 59 0x800000001, // float value, beyond max positive int 60 020000000001, // float value, beyond max positive int 61 -020000000001, // float value, beyond max negative int 62 0.0, 63 -0.1, 64 1.0, 65 1e5, 66 -1e6, 67 1E8, 68 -1E9, 69 10.0000000000000000005, 70 10.5e+5, 71 72 /* objects */ 73 new stdclass, 74 75 /* resources */ 76 $fp, 77 $dfp, 78 79 /* arrays */ 80 array(), 81 array(0), 82 array(1), 83 array(NULL), 84 array(null), 85 array("string"), 86 array(true), 87 array(TRUE), 88 array(false), 89 array(FALSE), 90 array(1,2,3,4), 91 array(1 => "One", "two" => 2), 92 93 /* strings */ 94 "", 95 '', 96 "0", 97 '0', 98 "1", 99 '1', 100 "\x01", 101 '\x01', 102 "\01", 103 '\01', 104 'string', 105 "string", 106 "true", 107 "FALSE", 108 'false', 109 'TRUE', 110 "NULL", 111 'null', 112 113 /* booleans */ 114 true, 115 false, 116 TRUE, 117 FALSE, 118 119 /* undefined and unset vars */ 120 @$unset_var, 121 @$undefined_var 122); 123/* loop through the $not_int_types to see working of 124 is_int() on non integer types, expected output: bool(false) */ 125$loop_counter = 1; 126foreach ($not_int_types as $type ) { 127 echo "--Iteration $loop_counter--\n"; $loop_counter++; 128 var_dump( is_int($type) ); 129 var_dump( is_integer($type) ); 130 var_dump( is_long($type) ); 131} 132 133echo "Done\n"; 134?> 135--EXPECT-- 136*** Testing is_int(), is_integer() & is_long() with valid integer values *** 137--Iteration 1-- 138bool(true) 139bool(true) 140bool(true) 141--Iteration 2-- 142bool(true) 143bool(true) 144bool(true) 145--Iteration 3-- 146bool(true) 147bool(true) 148bool(true) 149--Iteration 4-- 150bool(true) 151bool(true) 152bool(true) 153--Iteration 5-- 154bool(true) 155bool(true) 156bool(true) 157--Iteration 6-- 158bool(true) 159bool(true) 160bool(true) 161--Iteration 7-- 162bool(true) 163bool(true) 164bool(true) 165--Iteration 8-- 166bool(true) 167bool(true) 168bool(true) 169--Iteration 9-- 170bool(true) 171bool(true) 172bool(true) 173--Iteration 10-- 174bool(true) 175bool(true) 176bool(true) 177--Iteration 11-- 178bool(true) 179bool(true) 180bool(true) 181--Iteration 12-- 182bool(true) 183bool(true) 184bool(true) 185--Iteration 13-- 186bool(true) 187bool(true) 188bool(true) 189--Iteration 14-- 190bool(true) 191bool(true) 192bool(true) 193--Iteration 15-- 194bool(true) 195bool(true) 196bool(true) 197--Iteration 16-- 198bool(true) 199bool(true) 200bool(true) 201--Iteration 17-- 202bool(true) 203bool(true) 204bool(true) 205--Iteration 18-- 206bool(true) 207bool(true) 208bool(true) 209 210*** Testing is_int(), is_integer() & is_long() with non integer values *** 211--Iteration 1-- 212bool(true) 213bool(true) 214bool(true) 215--Iteration 2-- 216bool(true) 217bool(true) 218bool(true) 219--Iteration 3-- 220bool(true) 221bool(true) 222bool(true) 223--Iteration 4-- 224bool(true) 225bool(true) 226bool(true) 227--Iteration 5-- 228bool(true) 229bool(true) 230bool(true) 231--Iteration 6-- 232bool(true) 233bool(true) 234bool(true) 235--Iteration 7-- 236bool(false) 237bool(false) 238bool(false) 239--Iteration 8-- 240bool(false) 241bool(false) 242bool(false) 243--Iteration 9-- 244bool(false) 245bool(false) 246bool(false) 247--Iteration 10-- 248bool(false) 249bool(false) 250bool(false) 251--Iteration 11-- 252bool(false) 253bool(false) 254bool(false) 255--Iteration 12-- 256bool(false) 257bool(false) 258bool(false) 259--Iteration 13-- 260bool(false) 261bool(false) 262bool(false) 263--Iteration 14-- 264bool(false) 265bool(false) 266bool(false) 267--Iteration 15-- 268bool(false) 269bool(false) 270bool(false) 271--Iteration 16-- 272bool(false) 273bool(false) 274bool(false) 275--Iteration 17-- 276bool(false) 277bool(false) 278bool(false) 279--Iteration 18-- 280bool(false) 281bool(false) 282bool(false) 283--Iteration 19-- 284bool(false) 285bool(false) 286bool(false) 287--Iteration 20-- 288bool(false) 289bool(false) 290bool(false) 291--Iteration 21-- 292bool(false) 293bool(false) 294bool(false) 295--Iteration 22-- 296bool(false) 297bool(false) 298bool(false) 299--Iteration 23-- 300bool(false) 301bool(false) 302bool(false) 303--Iteration 24-- 304bool(false) 305bool(false) 306bool(false) 307--Iteration 25-- 308bool(false) 309bool(false) 310bool(false) 311--Iteration 26-- 312bool(false) 313bool(false) 314bool(false) 315--Iteration 27-- 316bool(false) 317bool(false) 318bool(false) 319--Iteration 28-- 320bool(false) 321bool(false) 322bool(false) 323--Iteration 29-- 324bool(false) 325bool(false) 326bool(false) 327--Iteration 30-- 328bool(false) 329bool(false) 330bool(false) 331--Iteration 31-- 332bool(false) 333bool(false) 334bool(false) 335--Iteration 32-- 336bool(false) 337bool(false) 338bool(false) 339--Iteration 33-- 340bool(false) 341bool(false) 342bool(false) 343--Iteration 34-- 344bool(false) 345bool(false) 346bool(false) 347--Iteration 35-- 348bool(false) 349bool(false) 350bool(false) 351--Iteration 36-- 352bool(false) 353bool(false) 354bool(false) 355--Iteration 37-- 356bool(false) 357bool(false) 358bool(false) 359--Iteration 38-- 360bool(false) 361bool(false) 362bool(false) 363--Iteration 39-- 364bool(false) 365bool(false) 366bool(false) 367--Iteration 40-- 368bool(false) 369bool(false) 370bool(false) 371--Iteration 41-- 372bool(false) 373bool(false) 374bool(false) 375--Iteration 42-- 376bool(false) 377bool(false) 378bool(false) 379--Iteration 43-- 380bool(false) 381bool(false) 382bool(false) 383--Iteration 44-- 384bool(false) 385bool(false) 386bool(false) 387--Iteration 45-- 388bool(false) 389bool(false) 390bool(false) 391--Iteration 46-- 392bool(false) 393bool(false) 394bool(false) 395--Iteration 47-- 396bool(false) 397bool(false) 398bool(false) 399--Iteration 48-- 400bool(false) 401bool(false) 402bool(false) 403--Iteration 49-- 404bool(false) 405bool(false) 406bool(false) 407--Iteration 50-- 408bool(false) 409bool(false) 410bool(false) 411--Iteration 51-- 412bool(false) 413bool(false) 414bool(false) 415--Iteration 52-- 416bool(false) 417bool(false) 418bool(false) 419--Iteration 53-- 420bool(false) 421bool(false) 422bool(false) 423--Iteration 54-- 424bool(false) 425bool(false) 426bool(false) 427Done 428