1--TEST-- 2Test is_float() & its is_double() alias 3--SKIPIF-- 4<?php 5if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); 6?> 7--FILE-- 8<?php 9echo "*** Testing is_float(), is_double() with float values***\n"; 10// different valid float values 11$floats = array( 12 -2147483649, // float value 13 2147483648, // float value 14 -0x80000001, // float value, beyond max negative int 15 0x800000001, // float value, beyond max positive int 16 020000000001, // float value, beyond max positive int 17 -020000000001, // float value, beyond max negative int 18 0.0, 19 -0.1, 20 10.0000000000000000005, 21 10.5e+5, 22 1e5, 23 -1e5, 24 1e-5, 25 -1e-5, 26 1e+5, 27 -1e+5, 28 1E5, 29 -1E5, 30 1E+5, 31 -1E+5, 32 1E-5, 33 -1E-5, 34 .5e+7, 35 -.5e+7, 36 .6e-19, 37 -.6e-19, 38 .05E+44, 39 -.05E+44, 40 .0034E-30, 41 -.0034E-30 42); 43/* loop to check that is_float(), is_double() & recognizes 44 different float values, expected: bool(true) */ 45$loop_counter = 1; 46foreach ($floats as $float ) { 47 echo "-- Iteration $loop_counter --\n"; $loop_counter++; 48 var_dump( is_float($float) ); 49 var_dump( is_double($float) ); 50} 51 52echo "\n*** Testing is_float(), is_double() with non float values ***\n"; 53// get a resource type variable 54$fp = fopen (__FILE__, "r"); 55$dfp = opendir ( __DIR__ ); 56 57// unset variable 58$unset_var = 10; 59unset ($unset_var); 60 61// non_scalar values, objects, arrays, resources and boolean 62class foo 63{ 64 var $array = array(10.5); 65}; 66$object = new foo(); 67 68$not_floats = array ( 69 new foo, //object 70 $object, 71 72 $fp, // resource 73 $dfp, 74 75 array(), // arrays 76 array(NULL), 77 array(0.5e10), 78 array(1,2,3,4), 79 array("string"), 80 81 NULL, // nulls 82 null, 83 84 true, // boolean 85 TRUE, 86 false, 87 FALSE, 88 89 "", // strings 90 '', 91 "0", 92 '0', 93 "0.0", 94 '0.0', 95 '0.5', 96 "-0.5", 97 "1e5", 98 '1e5', 99 '1.5e6_string', 100 "1.5e6_string", 101 102 1, // integers, hex and octal 103 -1, 104 0, 105 12345, 106 0xFF55, 107 -0x673, 108 0123, 109 -0123, 110 111 @$unset_var, // unset variable 112 @$undefined_var 113); 114/* loop through the $not_floats to see working of 115 is_float(), is_double() on objects, 116 arrays, boolean and others */ 117$loop_counter = 1; 118foreach ($not_floats as $value ) { 119 echo "--Iteration $loop_counter--\n"; $loop_counter++; 120 var_dump( is_float($value) ); 121 var_dump( is_double($value) ); 122} 123 124echo "Done\n"; 125 126// close the resources used 127fclose($fp); 128closedir($dfp); 129 130?> 131--EXPECT-- 132*** Testing is_float(), is_double() with float values*** 133-- Iteration 1 -- 134bool(true) 135bool(true) 136-- Iteration 2 -- 137bool(true) 138bool(true) 139-- Iteration 3 -- 140bool(true) 141bool(true) 142-- Iteration 4 -- 143bool(true) 144bool(true) 145-- Iteration 5 -- 146bool(true) 147bool(true) 148-- Iteration 6 -- 149bool(true) 150bool(true) 151-- Iteration 7 -- 152bool(true) 153bool(true) 154-- Iteration 8 -- 155bool(true) 156bool(true) 157-- Iteration 9 -- 158bool(true) 159bool(true) 160-- Iteration 10 -- 161bool(true) 162bool(true) 163-- Iteration 11 -- 164bool(true) 165bool(true) 166-- Iteration 12 -- 167bool(true) 168bool(true) 169-- Iteration 13 -- 170bool(true) 171bool(true) 172-- Iteration 14 -- 173bool(true) 174bool(true) 175-- Iteration 15 -- 176bool(true) 177bool(true) 178-- Iteration 16 -- 179bool(true) 180bool(true) 181-- Iteration 17 -- 182bool(true) 183bool(true) 184-- Iteration 18 -- 185bool(true) 186bool(true) 187-- Iteration 19 -- 188bool(true) 189bool(true) 190-- Iteration 20 -- 191bool(true) 192bool(true) 193-- Iteration 21 -- 194bool(true) 195bool(true) 196-- Iteration 22 -- 197bool(true) 198bool(true) 199-- Iteration 23 -- 200bool(true) 201bool(true) 202-- Iteration 24 -- 203bool(true) 204bool(true) 205-- Iteration 25 -- 206bool(true) 207bool(true) 208-- Iteration 26 -- 209bool(true) 210bool(true) 211-- Iteration 27 -- 212bool(true) 213bool(true) 214-- Iteration 28 -- 215bool(true) 216bool(true) 217-- Iteration 29 -- 218bool(true) 219bool(true) 220-- Iteration 30 -- 221bool(true) 222bool(true) 223 224*** Testing is_float(), is_double() with non float values *** 225--Iteration 1-- 226bool(false) 227bool(false) 228--Iteration 2-- 229bool(false) 230bool(false) 231--Iteration 3-- 232bool(false) 233bool(false) 234--Iteration 4-- 235bool(false) 236bool(false) 237--Iteration 5-- 238bool(false) 239bool(false) 240--Iteration 6-- 241bool(false) 242bool(false) 243--Iteration 7-- 244bool(false) 245bool(false) 246--Iteration 8-- 247bool(false) 248bool(false) 249--Iteration 9-- 250bool(false) 251bool(false) 252--Iteration 10-- 253bool(false) 254bool(false) 255--Iteration 11-- 256bool(false) 257bool(false) 258--Iteration 12-- 259bool(false) 260bool(false) 261--Iteration 13-- 262bool(false) 263bool(false) 264--Iteration 14-- 265bool(false) 266bool(false) 267--Iteration 15-- 268bool(false) 269bool(false) 270--Iteration 16-- 271bool(false) 272bool(false) 273--Iteration 17-- 274bool(false) 275bool(false) 276--Iteration 18-- 277bool(false) 278bool(false) 279--Iteration 19-- 280bool(false) 281bool(false) 282--Iteration 20-- 283bool(false) 284bool(false) 285--Iteration 21-- 286bool(false) 287bool(false) 288--Iteration 22-- 289bool(false) 290bool(false) 291--Iteration 23-- 292bool(false) 293bool(false) 294--Iteration 24-- 295bool(false) 296bool(false) 297--Iteration 25-- 298bool(false) 299bool(false) 300--Iteration 26-- 301bool(false) 302bool(false) 303--Iteration 27-- 304bool(false) 305bool(false) 306--Iteration 28-- 307bool(false) 308bool(false) 309--Iteration 29-- 310bool(false) 311bool(false) 312--Iteration 30-- 313bool(false) 314bool(false) 315--Iteration 31-- 316bool(false) 317bool(false) 318--Iteration 32-- 319bool(false) 320bool(false) 321--Iteration 33-- 322bool(false) 323bool(false) 324--Iteration 34-- 325bool(false) 326bool(false) 327--Iteration 35-- 328bool(false) 329bool(false) 330--Iteration 36-- 331bool(false) 332bool(false) 333--Iteration 37-- 334bool(false) 335bool(false) 336Done 337