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