1--TEST-- 2Test strtr() function : usage variations - unexpected inputs for 'from' argument 3--FILE-- 4<?php 5/* Test strtr() function: with unexpected inputs for 'from' 6 * and expected type for 'str' & 'to' arguments 7*/ 8 9echo "*** Testing strtr() function: with unexpected inputs for 'from' ***\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 values for 'from' 25$from_arr = array ( 26 27 // integer values 28/*1*/ 0, 29 1, 30 -2, 31 32 // float values 33/*4*/ 10.5, 34 -20.5, 35 10.1234567e10, 36 37 // array values 38/*7*/ array(), 39 array(0), 40 array(1, 2), 41 42 // boolean values 43/*10*/ true, 44 false, 45 TRUE, 46 FALSE, 47 48 // null values 49/*14*/ NULL, 50 null, 51 52 // objects 53/*16*/ new sample(), 54 55 // resource 56/*17*/ $file_handle, 57); 58 59//defining 'to' argument 60$to = "atm012"; 61 62// loop through with each element of the $from array to test strtr() function 63$count = 1; 64for($index = 0; $index < count($from_arr); $index++) { 65 echo "-- Iteration $count --\n"; 66 $from = $from_arr[$index]; 67 try { 68 var_dump(strtr($str, $from, $to)); 69 } catch (TypeError $exception) { 70 echo $exception->getMessage() . "\n"; 71 } 72 $count++; 73} 74 75fclose($file_handle); //closing the file handle 76?> 77--EXPECTF-- 78*** Testing strtr() function: with unexpected inputs for 'from' *** 79-- Iteration 1 -- 80string(6) "a12atm" 81-- Iteration 2 -- 82string(6) "0a2atm" 83-- Iteration 3 -- 84string(6) "01tatm" 85-- Iteration 4 -- 86string(6) "ta2atm" 87-- Iteration 5 -- 88string(6) "m1tatm" 89-- Iteration 6 -- 90string(6) "tm0atm" 91-- Iteration 7 -- 92strtr(): Argument #2 ($from) must be of type string, array given 93-- Iteration 8 -- 94strtr(): Argument #2 ($from) must be of type string, array given 95-- Iteration 9 -- 96strtr(): Argument #2 ($from) must be of type string, array given 97-- Iteration 10 -- 98string(6) "0a2atm" 99-- Iteration 11 -- 100string(6) "012atm" 101-- Iteration 12 -- 102string(6) "0a2atm" 103-- Iteration 13 -- 104string(6) "012atm" 105-- Iteration 14 -- 106 107Deprecated: strtr(): Passing null to parameter #2 ($from) of type array|string is deprecated in %s on line %d 108string(6) "012atm" 109-- Iteration 15 -- 110 111Deprecated: strtr(): Passing null to parameter #2 ($from) of type array|string is deprecated in %s on line %d 112string(6) "012atm" 113-- Iteration 16 -- 114string(6) "012ttm" 115-- Iteration 17 -- 116strtr(): Argument #2 ($from) must be of type string, resource given 117