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