1--TEST--
2Test floor() function : usage variations - different data types as $value arg
3--INI--
4precision=14
5--FILE--
6<?php
7/* Prototype  : float floor  ( float $value  )
8 * Description: Round fractions down.
9 * Source code: ext/standard/math.c
10 */
11
12echo "*** Testing floor() : usage variations ***\n";
13//get an unset variable
14$unset_var = 10;
15unset ($unset_var);
16
17// get a class
18class classA
19{
20}
21
22// heredoc string
23$heredoc = <<<EOT
24abc
25xyz
26EOT;
27
28// get a resource variable
29$fp = fopen(__FILE__, "r");
30
31// unexpected values to be passed to $value argument
32$inputs = array(
33       // null data
34/* 1*/ NULL,
35       null,
36
37       // boolean data
38/* 3*/ true,
39       false,
40       TRUE,
41       FALSE,
42
43       // empty data
44/* 7*/ "",
45       '',
46       array(),
47
48       // string data
49/*10*/ "abcxyz",
50       'abcxyz}',
51       $heredoc,
52
53       // object data
54/*13*/ new classA(),
55
56       // undefined data
57/*14*/ @$undefined_var,
58
59       // unset data
60/*15*/ @$unset_var,
61
62       // resource variable
63/*16*/ $fp
64);
65
66// loop through each element of $inputs to check the behaviour of floor()
67$iterator = 1;
68foreach($inputs as $input) {
69	echo "\n-- Iteration $iterator --\n";
70	var_dump(floor($input));
71	$iterator++;
72};
73fclose($fp);
74?>
75===Done===
76--EXPECTF--
77*** Testing floor() : usage variations ***
78
79-- Iteration 1 --
80float(0)
81
82-- Iteration 2 --
83float(0)
84
85-- Iteration 3 --
86float(1)
87
88-- Iteration 4 --
89float(0)
90
91-- Iteration 5 --
92float(1)
93
94-- Iteration 6 --
95float(0)
96
97-- Iteration 7 --
98float(0)
99
100-- Iteration 8 --
101float(0)
102
103-- Iteration 9 --
104bool(false)
105
106-- Iteration 10 --
107float(0)
108
109-- Iteration 11 --
110float(0)
111
112-- Iteration 12 --
113float(0)
114
115-- Iteration 13 --
116
117Notice: Object of class classA could not be converted to int in %s on line %d
118float(1)
119
120-- Iteration 14 --
121float(0)
122
123-- Iteration 15 --
124float(0)
125
126-- Iteration 16 --
127float(%f)
128===Done===
129