1--TEST--
2Test join() function : usage variations - unexpected values for 'pieces' argument(Bug#42789)
3--FILE--
4<?php
5/* Prototype  : string join( string $glue, array $pieces )
6 * Description: Join array elements with a string
7 * Source code: ext/standard/string.c
8 * Alias of function: implode()
9*/
10
11/*
12 * test join() by passing different unexpected value for pieces argument
13*/
14
15echo "*** Testing join() : usage variations ***\n";
16// initialize all required variables
17$glue = '::';
18
19// get an unset variable
20$unset_var = array(1, 2);
21unset($unset_var);
22
23// get a resouce variable
24$fp = fopen(__FILE__, "r");
25
26// define a class
27class test
28{
29  var $t = 10;
30  var $p = 10;
31  function __toString() {
32    return "testObject";
33  }
34}
35
36// array with different values
37$values =  array (
38
39  // integer values
40  0,
41  1,
42  12345,
43  -2345,
44
45  // float values
46  10.5,
47  -10.5,
48  10.5e10,
49  10.6E-10,
50  .5,
51
52  // boolean values
53  true,
54  false,
55  TRUE,
56  FALSE,
57
58  // string values
59  "string",
60  'string',
61
62  // objects
63  new test(),
64
65  // empty string
66  "",
67  '',
68
69  // null values
70  NULL,
71  null,
72
73  // resource variable
74  $fp,
75
76  // undefined variable
77  @$undefined_var,
78
79  // unset variable
80  @$unset_var
81);
82
83
84// loop through each element of the array and check the working of join()
85// when $pieces argument is supplied with different values
86echo "\n--- Testing join() by supplying different values for 'pieces' argument ---\n";
87$counter = 1;
88for($index = 0; $index < count($values); $index ++) {
89  echo "-- Iteration $counter --\n";
90  $pieces = $values [$index];
91
92  var_dump( join($glue, $pieces) );
93
94  $counter ++;
95}
96
97// close the resources used
98fclose($fp);
99
100echo "Done\n";
101?>
102--EXPECTF--
103*** Testing join() : usage variations ***
104
105--- Testing join() by supplying different values for 'pieces' argument ---
106-- Iteration 1 --
107
108Warning: join(): Invalid arguments passed in %s on line %d
109NULL
110-- Iteration 2 --
111
112Warning: join(): Invalid arguments passed in %s on line %d
113NULL
114-- Iteration 3 --
115
116Warning: join(): Invalid arguments passed in %s on line %d
117NULL
118-- Iteration 4 --
119
120Warning: join(): Invalid arguments passed in %s on line %d
121NULL
122-- Iteration 5 --
123
124Warning: join(): Invalid arguments passed in %s on line %d
125NULL
126-- Iteration 6 --
127
128Warning: join(): Invalid arguments passed in %s on line %d
129NULL
130-- Iteration 7 --
131
132Warning: join(): Invalid arguments passed in %s on line %d
133NULL
134-- Iteration 8 --
135
136Warning: join(): Invalid arguments passed in %s on line %d
137NULL
138-- Iteration 9 --
139
140Warning: join(): Invalid arguments passed in %s on line %d
141NULL
142-- Iteration 10 --
143
144Warning: join(): Invalid arguments passed in %s on line %d
145NULL
146-- Iteration 11 --
147
148Warning: join(): Invalid arguments passed in %s on line %d
149NULL
150-- Iteration 12 --
151
152Warning: join(): Invalid arguments passed in %s on line %d
153NULL
154-- Iteration 13 --
155
156Warning: join(): Invalid arguments passed in %s on line %d
157NULL
158-- Iteration 14 --
159
160Warning: join(): Invalid arguments passed in %s on line %d
161NULL
162-- Iteration 15 --
163
164Warning: join(): Invalid arguments passed in %s on line %d
165NULL
166-- Iteration 16 --
167
168Warning: join(): Invalid arguments passed in %s on line %d
169NULL
170-- Iteration 17 --
171
172Warning: join(): Invalid arguments passed in %s on line %d
173NULL
174-- Iteration 18 --
175
176Warning: join(): Invalid arguments passed in %s on line %d
177NULL
178-- Iteration 19 --
179
180Warning: join(): Invalid arguments passed in %s on line %d
181NULL
182-- Iteration 20 --
183
184Warning: join(): Invalid arguments passed in %s on line %d
185NULL
186-- Iteration 21 --
187
188Warning: join(): Invalid arguments passed in %s on line %d
189NULL
190-- Iteration 22 --
191
192Warning: join(): Invalid arguments passed in %s on line %d
193NULL
194-- Iteration 23 --
195
196Warning: join(): Invalid arguments passed in %s on line %d
197NULL
198Done
199