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