1--TEST--
2Test array_sum() function : usage variations - unexpected values for 'input' argument
3--FILE--
4<?php
5/* Prototype  : mixed array_sum(array $input)
6 * Description: Returns the sum of the array entries
7 * Source code: ext/standard/array.c
8*/
9
10/*
11* Passing different scalar/nonscalar values as 'input' argument to array_sum()
12*/
13
14echo "*** Testing array_sum() : unexpected values for 'input' ***\n";
15
16// get an unset variable
17$unset_var = 10;
18unset ($unset_var);
19
20// Class definition
21class MyClass
22{
23  public function __toString()
24  {
25    return "object";
26  }
27}
28
29// different scalar/non scalar values for 'input' argument
30$input_values = array(
31
32         // int data
33/*1*/    0,
34         1,
35         12345,
36         -2345,
37
38         // float data
39/*5*/    10.5,
40         -10.5,
41         10.1234567e8,
42         10.7654321E-8,
43         .5,
44
45         // null data
46/*10*/   NULL,
47         null,
48
49         // boolean data
50/*12*/   true,
51         false,
52         TRUE,
53         FALSE,
54
55         // empty data
56/*16*/   "",
57         '',
58
59         // string data
60/*18*/   "string",
61         'string',
62
63         // object data
64/*20*/   new MyClass(),
65
66         // resource data
67/*21*/   $fp = fopen(__FILE__,'r'),
68
69         // undefined data
70/*22*/   @$undefined_var,
71
72         // unset data
73/*23*/   @$unset_var,
74);
75
76// loop through each element of the array for input
77for($count = 0; $count < count($input_values); $count++) {
78  echo "-- Iteration ".($count + 1)." --\n";
79  var_dump( array_sum($input_values[$count]) );
80};
81
82fclose($fp);
83echo "Done"
84?>
85--EXPECTF--
86*** Testing array_sum() : unexpected values for 'input' ***
87-- Iteration 1 --
88
89Warning: array_sum() expects parameter 1 to be array, integer given in %s on line %d
90NULL
91-- Iteration 2 --
92
93Warning: array_sum() expects parameter 1 to be array, integer given in %s on line %d
94NULL
95-- Iteration 3 --
96
97Warning: array_sum() expects parameter 1 to be array, integer given in %s on line %d
98NULL
99-- Iteration 4 --
100
101Warning: array_sum() expects parameter 1 to be array, integer given in %s on line %d
102NULL
103-- Iteration 5 --
104
105Warning: array_sum() expects parameter 1 to be array, float given in %s on line %d
106NULL
107-- Iteration 6 --
108
109Warning: array_sum() expects parameter 1 to be array, float given in %s on line %d
110NULL
111-- Iteration 7 --
112
113Warning: array_sum() expects parameter 1 to be array, float given in %s on line %d
114NULL
115-- Iteration 8 --
116
117Warning: array_sum() expects parameter 1 to be array, float given in %s on line %d
118NULL
119-- Iteration 9 --
120
121Warning: array_sum() expects parameter 1 to be array, float given in %s on line %d
122NULL
123-- Iteration 10 --
124
125Warning: array_sum() expects parameter 1 to be array, null given in %s on line %d
126NULL
127-- Iteration 11 --
128
129Warning: array_sum() expects parameter 1 to be array, null given in %s on line %d
130NULL
131-- Iteration 12 --
132
133Warning: array_sum() expects parameter 1 to be array, boolean given in %s on line %d
134NULL
135-- Iteration 13 --
136
137Warning: array_sum() expects parameter 1 to be array, boolean given in %s on line %d
138NULL
139-- Iteration 14 --
140
141Warning: array_sum() expects parameter 1 to be array, boolean given in %s on line %d
142NULL
143-- Iteration 15 --
144
145Warning: array_sum() expects parameter 1 to be array, boolean given in %s on line %d
146NULL
147-- Iteration 16 --
148
149Warning: array_sum() expects parameter 1 to be array, string given in %s on line %d
150NULL
151-- Iteration 17 --
152
153Warning: array_sum() expects parameter 1 to be array, string given in %s on line %d
154NULL
155-- Iteration 18 --
156
157Warning: array_sum() expects parameter 1 to be array, string given in %s on line %d
158NULL
159-- Iteration 19 --
160
161Warning: array_sum() expects parameter 1 to be array, string given in %s on line %d
162NULL
163-- Iteration 20 --
164
165Warning: array_sum() expects parameter 1 to be array, object given in %s on line %d
166NULL
167-- Iteration 21 --
168
169Warning: array_sum() expects parameter 1 to be array, resource given in %s on line %d
170NULL
171-- Iteration 22 --
172
173Warning: array_sum() expects parameter 1 to be array, null given in %s on line %d
174NULL
175-- Iteration 23 --
176
177Warning: array_sum() expects parameter 1 to be array, null given in %s on line %d
178NULL
179Done
180