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