1--TEST--
2Test strspn() function : usage variations - unexpected values for mask argument
3--FILE--
4<?php
5/* Prototype  : proto int strspn(string str, string mask [, int start [, int len]])
6 * Description: Finds length of initial segment consisting entirely of characters found in mask.
7		If start or/and length is provided works like strspn(substr($s,$start,$len),$good_chars)
8 * Source code: ext/standard/string.c
9 * Alias to functions: none
10*/
11
12error_reporting(E_ALL & ~E_NOTICE);
13
14/*
15* Testing strspn() : with different unexpected values for mask argument
16*/
17
18echo "*** Testing strspn() : with different unexpected values of mask argument ***\n";
19
20$str = 'string_val';
21$start = 1;
22$len = 10;
23
24
25//get an unset variable
26$unset_var = 10;
27unset ($unset_var);
28
29// declaring class
30class sample  {
31  public function __toString() {
32    return "object";
33  }
34}
35
36// creating a file resource
37$file_handle = fopen(__FILE__, 'r');
38
39
40//array of values to iterate over
41$values = array(
42
43      // int data
44      0,
45      1,
46      12345,
47      -2345,
48
49      // float data
50      10.5,
51      -10.5,
52      10.1234567e10,
53      10.7654321E-10,
54      .5,
55
56      // array data
57      array(),
58      array(0),
59      array(1),
60      array(1, 2),
61      array('color' => 'red', 'item' => 'pen'),
62
63      // null data
64      NULL,
65      null,
66
67      // boolean data
68      true,
69      false,
70      TRUE,
71      FALSE,
72
73      // empty data
74      "",
75      '',
76
77      // object data
78      new sample(),
79
80      // undefined data
81      $undefined_var,
82
83      // unset data
84      $unset_var,
85
86      // resource
87      $file_handle
88);
89
90// loop through each element of the array for mask
91
92foreach($values as $value) {
93      echo "\n-- Iteration with mask value as \"$value\" --\n";
94      var_dump( strspn($str,$value) );  // with defalut args
95      var_dump( strspn($str,$value,$start) );  // with default len value
96      var_dump( strspn($str,$value,$start,$len) );  // with all args
97};
98
99// close the resource
100fclose($file_handle);
101
102echo "Done"
103?>
104--EXPECTF--
105*** Testing strspn() : with different unexpected values of mask argument ***
106
107-- Iteration with mask value as "0" --
108int(0)
109int(0)
110int(0)
111
112-- Iteration with mask value as "1" --
113int(0)
114int(0)
115int(0)
116
117-- Iteration with mask value as "12345" --
118int(0)
119int(0)
120int(0)
121
122-- Iteration with mask value as "-2345" --
123int(0)
124int(0)
125int(0)
126
127-- Iteration with mask value as "10.5" --
128int(0)
129int(0)
130int(0)
131
132-- Iteration with mask value as "-10.5" --
133int(0)
134int(0)
135int(0)
136
137-- Iteration with mask value as "101234567000" --
138int(0)
139int(0)
140int(0)
141
142-- Iteration with mask value as "1.07654321E-9" --
143int(0)
144int(0)
145int(0)
146
147-- Iteration with mask value as "0.5" --
148int(0)
149int(0)
150int(0)
151
152-- Iteration with mask value as "Array" --
153
154Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
155NULL
156
157Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
158NULL
159
160Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
161NULL
162
163-- Iteration with mask value as "Array" --
164
165Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
166NULL
167
168Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
169NULL
170
171Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
172NULL
173
174-- Iteration with mask value as "Array" --
175
176Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
177NULL
178
179Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
180NULL
181
182Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
183NULL
184
185-- Iteration with mask value as "Array" --
186
187Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
188NULL
189
190Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
191NULL
192
193Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
194NULL
195
196-- Iteration with mask value as "Array" --
197
198Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
199NULL
200
201Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
202NULL
203
204Warning: strspn() expects parameter 2 to be string, array given in %s on line %d
205NULL
206
207-- Iteration with mask value as "" --
208int(0)
209int(0)
210int(0)
211
212-- Iteration with mask value as "" --
213int(0)
214int(0)
215int(0)
216
217-- Iteration with mask value as "1" --
218int(0)
219int(0)
220int(0)
221
222-- Iteration with mask value as "" --
223int(0)
224int(0)
225int(0)
226
227-- Iteration with mask value as "1" --
228int(0)
229int(0)
230int(0)
231
232-- Iteration with mask value as "" --
233int(0)
234int(0)
235int(0)
236
237-- Iteration with mask value as "" --
238int(0)
239int(0)
240int(0)
241
242-- Iteration with mask value as "" --
243int(0)
244int(0)
245int(0)
246
247-- Iteration with mask value as "object" --
248int(0)
249int(1)
250int(1)
251
252-- Iteration with mask value as "" --
253int(0)
254int(0)
255int(0)
256
257-- Iteration with mask value as "" --
258int(0)
259int(0)
260int(0)
261
262-- Iteration with mask value as "Resource id #%d" --
263
264Warning: strspn() expects parameter 2 to be string, resource given in %s on line %d
265NULL
266
267Warning: strspn() expects parameter 2 to be string, resource given in %s on line %d
268NULL
269
270Warning: strspn() expects parameter 2 to be string, resource given in %s on line %d
271NULL
272Done
273