1--TEST-- 2Test sscanf() function : usage variations - unexpected inputs for '$str' 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 'str' 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$format = "%s"; 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($input, $format) ); 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 'str' argument *** 86-- Iteration 1 -- 87array(1) { 88 [0]=> 89 string(1) "0" 90} 91-- Iteration 2 -- 92array(1) { 93 [0]=> 94 string(1) "1" 95} 96-- Iteration 3 -- 97array(1) { 98 [0]=> 99 string(2) "-2" 100} 101-- Iteration 4 -- 102array(1) { 103 [0]=> 104 string(10) "2147483647" 105} 106-- Iteration 5 -- 107array(1) { 108 [0]=> 109 string(11) "-2147483648" 110} 111-- Iteration 6 -- 112array(1) { 113 [0]=> 114 string(4) "10.5" 115} 116-- Iteration 7 -- 117array(1) { 118 [0]=> 119 string(5) "-20.5" 120} 121-- Iteration 8 -- 122array(1) { 123 [0]=> 124 string(12) "101234567000" 125} 126-- Iteration 9 -- 127 128Warning: sscanf() expects parameter 1 to be string, array given in %s on line %d 129NULL 130-- Iteration 10 -- 131 132Warning: sscanf() expects parameter 1 to be string, array given in %s on line %d 133NULL 134-- Iteration 11 -- 135 136Warning: sscanf() expects parameter 1 to be string, array given in %s on line %d 137NULL 138-- Iteration 12 -- 139array(1) { 140 [0]=> 141 string(1) "1" 142} 143-- Iteration 13 -- 144NULL 145-- Iteration 14 -- 146array(1) { 147 [0]=> 148 string(1) "1" 149} 150-- Iteration 15 -- 151NULL 152-- Iteration 16 -- 153NULL 154-- Iteration 17 -- 155NULL 156-- Iteration 18 -- 157array(1) { 158 [0]=> 159 string(6) "sample" 160} 161-- Iteration 19 -- 162 163Warning: sscanf() expects parameter 1 to be string, resource given in %s on line %d 164NULL 165-- Iteration 20 -- 166NULL 167-- Iteration 21 -- 168NULL 169===DONE=== 170