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