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