1--TEST--
2Test is_bool() function
3--FILE--
4<?php
5/* Prototype: bool is_bool ( mixed $var );
6 * Description: Finds whether the given variable is a boolean
7 */
8
9echo "*** Testing is_bool() with valid boolean values ***\n";
10// different valid  boolean vlaues
11$valid_bools = array(
12  TRUE,
13  FALSE,
14  true,
15  false,
16);
17/* loop to check that is_bool() recognizes different
18   bool values, expected output: bool(true) */
19$loop_counter = 1;
20foreach ($valid_bools as $bool_val ) {
21  echo "-- Iteration $loop_counter --\n"; $loop_counter++;
22  var_dump( is_bool($bool_val) );
23}
24
25echo "\n*** Testing is_bool() on non boolean values ***\n";
26
27// get a resource type variable
28$fp = fopen (__FILE__, "r");
29$dfp = opendir ( dirname(__FILE__) );
30
31// unset variable
32$unset_bool1 = true;
33$unset_bool2 = false;
34$unset_var = 0;
35unset ($unset_bool1);
36unset ($unset_bool2);
37unset ($unset_var);
38
39// other types in a array
40$not_bool_types = array (
41  /* integers */
42  0,
43  1,
44  -1,
45  -0,
46  543915,
47  -5322,
48  0x0,
49  0x1,
50  0x55F,
51  -0xCCF,
52  0123,
53  -0654,
54  00,
55  01,
56
57  /* strings */
58  "",
59  '',
60  "0",
61  '0',
62  "1",
63  '1',
64  'string',
65  "string",
66  "true",
67  "false",
68  "FALSE",
69  "TRUE",
70  'true',
71  'false',
72  'FALSE',
73  'TRUE',
74  "NULL",
75  "null",
76
77  /* floats */
78  0.0,
79  1.0,
80  -1.0,
81  10.0000000000000000005,
82  .5e6,
83  -.5E7,
84  .5E+8,
85  -.5e+90,
86  1e5,
87  -1e5,
88  1E5,
89  -1E7,
90
91  /* objects */
92  new stdclass,
93
94  /* resources */
95  $fp,
96  $dfp,
97
98  /* nulls */
99  null,
100  NULL,
101
102  /* arrays */
103  array(),
104  array(0),
105  array(1),
106  array(NULL),
107  array(null),
108  array("string"),
109  array(true),
110  array(TRUE),
111  array(false),
112  array(FALSE),
113  array(1,2,3,4),
114  array(1 => "One", "two" => 2),
115
116  /* unset bool vars and undefined var */
117  @$unset_bool1,
118  @$unset_bool2,
119  @$unset_var,
120  @$undefined_var
121);
122/* loop through the $not_bool_types to see working of
123   is_bool() on non bull types, expected output: bool(false) */
124$loop_counter = 1;
125foreach ($not_bool_types as $type ) {
126  echo "-- Iteration $loop_counter --\n"; $loop_counter++;
127  var_dump( is_bool($type) );
128}
129
130echo "\n*** Testing error conditions ***\n";
131//Zero argument
132var_dump( is_bool() );
133
134//arguments more than expected
135var_dump( is_bool(TRUE, FALSE) );
136
137echo "Done\n";
138
139// close resources
140fclose($fp);
141closedir($dfp);
142
143?>
144--EXPECTF--
145*** Testing is_bool() with valid boolean values ***
146-- Iteration 1 --
147bool(true)
148-- Iteration 2 --
149bool(true)
150-- Iteration 3 --
151bool(true)
152-- Iteration 4 --
153bool(true)
154
155*** Testing is_bool() on non boolean values ***
156-- Iteration 1 --
157bool(false)
158-- Iteration 2 --
159bool(false)
160-- Iteration 3 --
161bool(false)
162-- Iteration 4 --
163bool(false)
164-- Iteration 5 --
165bool(false)
166-- Iteration 6 --
167bool(false)
168-- Iteration 7 --
169bool(false)
170-- Iteration 8 --
171bool(false)
172-- Iteration 9 --
173bool(false)
174-- Iteration 10 --
175bool(false)
176-- Iteration 11 --
177bool(false)
178-- Iteration 12 --
179bool(false)
180-- Iteration 13 --
181bool(false)
182-- Iteration 14 --
183bool(false)
184-- Iteration 15 --
185bool(false)
186-- Iteration 16 --
187bool(false)
188-- Iteration 17 --
189bool(false)
190-- Iteration 18 --
191bool(false)
192-- Iteration 19 --
193bool(false)
194-- Iteration 20 --
195bool(false)
196-- Iteration 21 --
197bool(false)
198-- Iteration 22 --
199bool(false)
200-- Iteration 23 --
201bool(false)
202-- Iteration 24 --
203bool(false)
204-- Iteration 25 --
205bool(false)
206-- Iteration 26 --
207bool(false)
208-- Iteration 27 --
209bool(false)
210-- Iteration 28 --
211bool(false)
212-- Iteration 29 --
213bool(false)
214-- Iteration 30 --
215bool(false)
216-- Iteration 31 --
217bool(false)
218-- Iteration 32 --
219bool(false)
220-- Iteration 33 --
221bool(false)
222-- Iteration 34 --
223bool(false)
224-- Iteration 35 --
225bool(false)
226-- Iteration 36 --
227bool(false)
228-- Iteration 37 --
229bool(false)
230-- Iteration 38 --
231bool(false)
232-- Iteration 39 --
233bool(false)
234-- Iteration 40 --
235bool(false)
236-- Iteration 41 --
237bool(false)
238-- Iteration 42 --
239bool(false)
240-- Iteration 43 --
241bool(false)
242-- Iteration 44 --
243bool(false)
244-- Iteration 45 --
245bool(false)
246-- Iteration 46 --
247bool(false)
248-- Iteration 47 --
249bool(false)
250-- Iteration 48 --
251bool(false)
252-- Iteration 49 --
253bool(false)
254-- Iteration 50 --
255bool(false)
256-- Iteration 51 --
257bool(false)
258-- Iteration 52 --
259bool(false)
260-- Iteration 53 --
261bool(false)
262-- Iteration 54 --
263bool(false)
264-- Iteration 55 --
265bool(false)
266-- Iteration 56 --
267bool(false)
268-- Iteration 57 --
269bool(false)
270-- Iteration 58 --
271bool(false)
272-- Iteration 59 --
273bool(false)
274-- Iteration 60 --
275bool(false)
276-- Iteration 61 --
277bool(false)
278-- Iteration 62 --
279bool(false)
280-- Iteration 63 --
281bool(false)
282-- Iteration 64 --
283bool(false)
284-- Iteration 65 --
285bool(false)
286
287*** Testing error conditions ***
288
289Warning: is_bool() expects exactly 1 parameter, 0 given in %s on line %d
290bool(false)
291
292Warning: is_bool() expects exactly 1 parameter, 2 given in %s on line %d
293bool(false)
294Done
295