]> granicus.if.org Git - php/blob
f7ef3f5317
[php] /
1 --TEST--
2 Test is_scalar() function
3 --FILE--
4 <?php
5 /* Prototype: bool is_scalar ( mixed $var );
6  * Description: Finds whether a variable is a scalar (i.e integer, float, string or boolean)
7  */
8
9 echo "*** Testing basic operations ***\n";
10 $scalar_variables = array(
11   0,  // integers
12   1,
13   -45678,
14   0x5FF,  // hexadecimal as integer
15   0X566,
16   -0xAAF,
17   -0XCCF,
18   01234,  // octal as integer
19   -0126,
20
21   0.0,  // floats
22   -1.0,
23   1e5,
24   -1e7,
25   1.6E7,
26   475.e-8,
27   784.e+30,
28   98.45E+40,
29   .5E-40,
30
31   "",  // strings
32   '',
33   " ",
34   ' ',
35   "string",
36   'string',
37   "0",  // numeric as string
38   "40",
39   "50.696",
40   "0x534",
41   "0X534",
42
43   TRUE,  // boolean
44   FALSE,
45   true,
46   false
47 );
48 /* loop through each valid scalar variables in $scalar_variables
49    and see the working of is_scalar(), expected output: bool(true)
50 */
51 $loop_counter = 1;
52 foreach($scalar_variables as $scalar) {
53   echo "-- Iteration $loop_counter --\n"; $loop_counter++;
54   var_dump( is_scalar($scalar) );
55 }
56
57 echo "\n*** Testing possible variations ***\n";
58 // different scalar variables which are unset
59 $int_var = 10;
60 $float_var = 1e5;
61 $string_var = "string";
62 $boolean_var = true;
63 $object = new stdclass;
64 $array = array(10);
65 $resource = opendir('.');
66 unset($int_var, $float_var, $string_var, $boolean_var, $object, $array, $resource);
67
68 // resources
69 $fp = fopen(__FILE__, "r");
70 $dfp = opendir(".");
71
72 $variation_array = array(
73   NULL,
74   null,
75
76   array(),  // arrays
77   array(NULL),
78   array(true),
79   array(0),
80   array(1,2,3,4),
81
82   $fp,  // resources
83   $dfp,
84
85   new stdclass, // object
86
87   @$int_var,  // scalars that are unset
88   @$float_var,
89   @$string_var,
90   @$boolean_var,
91
92   @$array,   // non scalars that are unset
93   @$object,
94   @$resource,
95
96   @$undefined_var  // undefined variable
97 );
98
99 /* loop through each element of $variation_array to see the
100    working of is_scalar on non-scalar values, expected output: bool(false)
101 */
102 $loop_counter = 1;
103 foreach( $variation_array as $value ) {
104   echo "-- Iteration $loop_counter --\n"; $loop_counter++;
105   var_dump( is_scalar($value) );
106 }
107
108 echo "Done\n";
109
110 // close the resources used
111 fclose($fp);
112 closedir($dfp);
113
114 ?>
115 --EXPECTF--
116 *** Testing basic operations ***
117 -- Iteration 1 --
118 bool(true)
119 -- Iteration 2 --
120 bool(true)
121 -- Iteration 3 --
122 bool(true)
123 -- Iteration 4 --
124 bool(true)
125 -- Iteration 5 --
126 bool(true)
127 -- Iteration 6 --
128 bool(true)
129 -- Iteration 7 --
130 bool(true)
131 -- Iteration 8 --
132 bool(true)
133 -- Iteration 9 --
134 bool(true)
135 -- Iteration 10 --
136 bool(true)
137 -- Iteration 11 --
138 bool(true)
139 -- Iteration 12 --
140 bool(true)
141 -- Iteration 13 --
142 bool(true)
143 -- Iteration 14 --
144 bool(true)
145 -- Iteration 15 --
146 bool(true)
147 -- Iteration 16 --
148 bool(true)
149 -- Iteration 17 --
150 bool(true)
151 -- Iteration 18 --
152 bool(true)
153 -- Iteration 19 --
154 bool(true)
155 -- Iteration 20 --
156 bool(true)
157 -- Iteration 21 --
158 bool(true)
159 -- Iteration 22 --
160 bool(true)
161 -- Iteration 23 --
162 bool(true)
163 -- Iteration 24 --
164 bool(true)
165 -- Iteration 25 --
166 bool(true)
167 -- Iteration 26 --
168 bool(true)
169 -- Iteration 27 --
170 bool(true)
171 -- Iteration 28 --
172 bool(true)
173 -- Iteration 29 --
174 bool(true)
175 -- Iteration 30 --
176 bool(true)
177 -- Iteration 31 --
178 bool(true)
179 -- Iteration 32 --
180 bool(true)
181 -- Iteration 33 --
182 bool(true)
183
184 *** Testing possible variations ***
185 -- Iteration 1 --
186 bool(false)
187 -- Iteration 2 --
188 bool(false)
189 -- Iteration 3 --
190 bool(false)
191 -- Iteration 4 --
192 bool(false)
193 -- Iteration 5 --
194 bool(false)
195 -- Iteration 6 --
196 bool(false)
197 -- Iteration 7 --
198 bool(false)
199 -- Iteration 8 --
200 bool(false)
201 -- Iteration 9 --
202 bool(false)
203 -- Iteration 10 --
204 bool(false)
205 -- Iteration 11 --
206 bool(false)
207 -- Iteration 12 --
208 bool(false)
209 -- Iteration 13 --
210 bool(false)
211 -- Iteration 14 --
212 bool(false)
213 -- Iteration 15 --
214 bool(false)
215 -- Iteration 16 --
216 bool(false)
217 -- Iteration 17 --
218 bool(false)
219 -- Iteration 18 --
220 bool(false)
221 Done