1--TEST--
2Test is_array() function
3--FILE--
4<?php
5echo "*** Testing is_array() on different type of arrays ***\n";
6/* different types of arrays */
7$arrays = array(
8  array(),
9  array(NULL),
10  array(null),
11  array(true),
12  array(""),
13  array(''),
14  array(array(), array()),
15  array(array(1, 2), array('a', 'b')),
16  array(1 => 'One'),
17  array("test" => "is_array"),
18  array(0),
19  array(-1),
20  array(10.5, 5.6),
21  array("string", "test"),
22  array('string', 'test')
23);
24/* loop to check that is_array() recognizes different
25   type of arrays, expected output bool(true) */
26$loop_counter = 1;
27foreach ($arrays as $var_array ) {
28  echo "-- Iteration $loop_counter --\n"; $loop_counter++;
29  var_dump( is_array ($var_array) );
30}
31
32echo "\n*** Testing is_array() on non array types ***\n";
33
34// get a resource type variable
35$fp = fopen (__FILE__, "r");
36$dfp = opendir ( __DIR__ );
37
38// unset variables
39$unset_array = array(10);
40unset($unset_array);
41
42// other types in a array
43$varient_arrays = array (
44  /* integers */
45  543915,
46  -5322,
47  0x55F,
48  -0xCCF,
49  123,
50  -0654,
51
52  /* strings */
53  "",
54  '',
55  "0",
56  '0',
57  'string',
58  "string",
59
60  /* floats */
61  10.0000000000000000005,
62  .5e6,
63  -.5E7,
64  .5E+8,
65  -.5e+90,
66  1e5,
67
68  /* objects */
69  new stdclass,
70
71  /* resources */
72  $fp,
73  $dfp,
74
75  /* nulls */
76  null,
77  NULL,
78
79  /* boolean */
80  true,
81  TRUE,
82  FALSE,
83  false,
84
85  /* unset/undefined arrays  */
86  @$unset_array,
87  @$undefined_array
88);
89/* loop through the $varient_array to see working of
90   is_array() on non array types, expected output bool(false) */
91$loop_counter = 1;
92foreach ($varient_arrays as $type ) {
93  echo "-- Iteration $loop_counter --\n"; $loop_counter++;
94  var_dump( is_array ($type) );
95}
96
97echo "Done\n";
98/* close resources */
99fclose($fp);
100closedir($dfp);
101?>
102--EXPECT--
103*** Testing is_array() on different type of arrays ***
104-- Iteration 1 --
105bool(true)
106-- Iteration 2 --
107bool(true)
108-- Iteration 3 --
109bool(true)
110-- Iteration 4 --
111bool(true)
112-- Iteration 5 --
113bool(true)
114-- Iteration 6 --
115bool(true)
116-- Iteration 7 --
117bool(true)
118-- Iteration 8 --
119bool(true)
120-- Iteration 9 --
121bool(true)
122-- Iteration 10 --
123bool(true)
124-- Iteration 11 --
125bool(true)
126-- Iteration 12 --
127bool(true)
128-- Iteration 13 --
129bool(true)
130-- Iteration 14 --
131bool(true)
132-- Iteration 15 --
133bool(true)
134
135*** Testing is_array() on non array types ***
136-- Iteration 1 --
137bool(false)
138-- Iteration 2 --
139bool(false)
140-- Iteration 3 --
141bool(false)
142-- Iteration 4 --
143bool(false)
144-- Iteration 5 --
145bool(false)
146-- Iteration 6 --
147bool(false)
148-- Iteration 7 --
149bool(false)
150-- Iteration 8 --
151bool(false)
152-- Iteration 9 --
153bool(false)
154-- Iteration 10 --
155bool(false)
156-- Iteration 11 --
157bool(false)
158-- Iteration 12 --
159bool(false)
160-- Iteration 13 --
161bool(false)
162-- Iteration 14 --
163bool(false)
164-- Iteration 15 --
165bool(false)
166-- Iteration 16 --
167bool(false)
168-- Iteration 17 --
169bool(false)
170-- Iteration 18 --
171bool(false)
172-- Iteration 19 --
173bool(false)
174-- Iteration 20 --
175bool(false)
176-- Iteration 21 --
177bool(false)
178-- Iteration 22 --
179bool(false)
180-- Iteration 23 --
181bool(false)
182-- Iteration 24 --
183bool(false)
184-- Iteration 25 --
185bool(false)
186-- Iteration 26 --
187bool(false)
188-- Iteration 27 --
189bool(false)
190-- Iteration 28 --
191bool(false)
192-- Iteration 29 --
193bool(false)
194Done
195