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