1--TEST--
2Test sscanf() function : usage variations - unexpected inputs for '$format' argument
3--FILE--
4<?php
5/* Prototype  : mixed sscanf  ( string $str  , string $format  [, mixed &$...  ] )
6 * Description: Parses input from a string according to a format
7 * Source code: ext/standard/string.c
8*/
9
10echo "*** Testing sscanf() function: with unexpected inputs for 'format' argument ***\n";
11
12//get an unset variable
13$unset_var = 'string_val';
14unset($unset_var);
15
16//defining a class
17class sample  {
18  public function __toString() {
19    return "sample object";
20  }
21}
22
23//getting the resource
24$file_handle = fopen(__FILE__, "r");
25
26// array with different values for $input
27$inputs =  array (
28
29		  // integer values
30/*1*/	  0,
31		  1,
32		  -2,
33		   2147483647,
34		  -2147483648,
35
36		  // float values
37/*6*/	  10.5,
38		  -20.5,
39		  10.1234567e10,
40
41		  // array values
42/*9*/	  array(),
43		  array(0),
44		  array(1, 2),
45
46		  // boolean values
47/*12*/	  true,
48		  false,
49		  TRUE,
50		  FALSE,
51
52		  // null values
53/*16*/	  NULL,
54		  null,
55
56		  // objects
57/*18*/	  new sample(),
58
59		  // resource
60/*19*/	  $file_handle,
61
62		  // undefined variable
63/*20*/	  @$undefined_var,
64
65		  // unset variable
66/*21*/	  @$unset_var
67);
68
69//defining '$pad_length' argument
70$str = "Hello World";
71
72// loop through with each element of the $inputs array to test sscanf() function
73$count = 1;
74foreach($inputs as $input) {
75  echo "-- Iteration $count --\n";
76  var_dump( sscanf($str, $input) );
77  $count ++;
78}
79
80fclose($file_handle);  //closing the file handle
81
82?>
83===DONE===
84--EXPECTF--
85*** Testing sscanf() function: with unexpected inputs for 'format' argument ***
86-- Iteration 1 --
87array(0) {
88}
89-- Iteration 2 --
90array(0) {
91}
92-- Iteration 3 --
93array(0) {
94}
95-- Iteration 4 --
96array(0) {
97}
98-- Iteration 5 --
99array(0) {
100}
101-- Iteration 6 --
102array(0) {
103}
104-- Iteration 7 --
105array(0) {
106}
107-- Iteration 8 --
108array(0) {
109}
110-- Iteration 9 --
111
112Warning: sscanf() expects parameter 2 to be string, array given in %s on line %d
113NULL
114-- Iteration 10 --
115
116Warning: sscanf() expects parameter 2 to be string, array given in %s on line %d
117NULL
118-- Iteration 11 --
119
120Warning: sscanf() expects parameter 2 to be string, array given in %s on line %d
121NULL
122-- Iteration 12 --
123array(0) {
124}
125-- Iteration 13 --
126array(0) {
127}
128-- Iteration 14 --
129array(0) {
130}
131-- Iteration 15 --
132array(0) {
133}
134-- Iteration 16 --
135array(0) {
136}
137-- Iteration 17 --
138array(0) {
139}
140-- Iteration 18 --
141array(0) {
142}
143-- Iteration 19 --
144
145Warning: sscanf() expects parameter 2 to be string, resource given in %s on line %d
146NULL
147-- Iteration 20 --
148array(0) {
149}
150-- Iteration 21 --
151array(0) {
152}
153===DONE===
154