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