1--TEST-- 2Test strtr() function : usage variations - unexpected inputs for 'replace_pairs' argument 3--FILE-- 4<?php 5/* Test strtr() function: with unexpected inputs for 'replace_pairs' 6 * and expected type for 'str' arguments 7*/ 8 9echo "*** Testing strtr() function: with unexpected inputs for 'replace_pairs' ***\n"; 10 11//defining a class 12class sample { 13 public function __toString() { 14 return "sample object"; 15 } 16} 17 18//getting the resource 19$file_handle = fopen(__FILE__, "r"); 20 21//defining 'str' argument 22$str = "012atm"; 23 24// array of inputs for 'replace_pairs' argument 25$replace_pairs_arr = array ( 26 27 // integer values 28 0, 29 1, 30 -2, 31 32 // float values 33 10.5, 34 -20.5, 35 10.5e10, 36 37 // array values 38 array(), 39 array(0), 40 array(1, 2), 41 42 // boolean values 43 true, 44 false, 45 TRUE, 46 FALSE, 47 48 // null values 49 NULL, 50 null, 51 52 // objects 53 new sample(), 54 55 // resource 56 $file_handle, 57); 58 59// loop through with each element of the $replace_pairs array to test strtr() function 60$count = 1; 61for($index = 0; $index < count($replace_pairs_arr); $index++) { 62 echo "\n-- Iteration $count --\n"; 63 $replace_pairs = $replace_pairs_arr[$index]; 64 try { 65 var_dump(strtr($str, $replace_pairs)); 66 } catch (TypeError $e) { 67 echo $e->getMessage() . "\n"; 68 } 69 70 $count ++; 71} 72 73fclose($file_handle); //closing the file handle 74 75echo "*** Done ***"; 76?> 77--EXPECT-- 78*** Testing strtr() function: with unexpected inputs for 'replace_pairs' *** 79 80-- Iteration 1 -- 81strtr(): Argument #2 ($from) must be of type array, int given 82 83-- Iteration 2 -- 84strtr(): Argument #2 ($from) must be of type array, int given 85 86-- Iteration 3 -- 87strtr(): Argument #2 ($from) must be of type array, int given 88 89-- Iteration 4 -- 90strtr(): Argument #2 ($from) must be of type array, float given 91 92-- Iteration 5 -- 93strtr(): Argument #2 ($from) must be of type array, float given 94 95-- Iteration 6 -- 96strtr(): Argument #2 ($from) must be of type array, float given 97 98-- Iteration 7 -- 99string(6) "012atm" 100 101-- Iteration 8 -- 102string(6) "012atm" 103 104-- Iteration 9 -- 105string(6) "122atm" 106 107-- Iteration 10 -- 108strtr(): Argument #2 ($from) must be of type array, true given 109 110-- Iteration 11 -- 111strtr(): Argument #2 ($from) must be of type array, false given 112 113-- Iteration 12 -- 114strtr(): Argument #2 ($from) must be of type array, true given 115 116-- Iteration 13 -- 117strtr(): Argument #2 ($from) must be of type array, false given 118 119-- Iteration 14 -- 120strtr(): Argument #2 ($from) must be of type array, null given 121 122-- Iteration 15 -- 123strtr(): Argument #2 ($from) must be of type array, null given 124 125-- Iteration 16 -- 126strtr(): Argument #2 ($from) must be of type array, sample given 127 128-- Iteration 17 -- 129strtr(): Argument #2 ($from) must be of type array, resource given 130*** Done *** 131