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