1--TEST-- 2Test strtr() function : usage variations - unexpected inputs for 'to' argument 3--FILE-- 4<?php 5/* Prototype : string strtr(string $str, string $from[, string $to]); 6 string strtr(string $str, array $replace_pairs); 7 * Description: Translates characters in str using given translation tables 8 * Source code: ext/standard/string.c 9*/ 10 11/* Test strtr() function: with unexpected inputs for 'to' 12 * and expected types for 'str' & 'from' arguments 13*/ 14 15echo "*** Testing strtr() function: with unexpected inputs for 'to' ***\n"; 16 17//get an unset variable 18$unset_var = 'string_val'; 19unset($unset_var); 20 21//defining a class 22class sample { 23 public function __toString() { 24 return "sample object"; 25 } 26} 27 28//getting the resource 29$file_handle = fopen(__FILE__, "r"); 30 31//defining 'str' argument 32$str = "012atm"; 33 34//defining 'from' argument 35$from = "atm012"; 36 37// array of values for 'to' argument 38$to_arr = array ( 39 40 // integer values 41/*1*/ 0, 42 1, 43 -2, 44 45 // float values 46/*4*/ 10.5, 47 -20.5, 48 10.12345675e10, 49 50 // array values 51/*7*/ array(), 52 array(0), 53 array(1, 2), 54 55 // boolean values 56/*10*/ true, 57 false, 58 TRUE, 59 FALSE, 60 61 // null vlaues 62/*14*/ NULL, 63 null, 64 65 // objects 66/*16*/ new sample(), 67 68 // resource 69/*17*/ $file_handle, 70 71 // undefined variable 72/*18*/ @$undefined_var, 73 74 // unset variable 75/*19*/ @$unset_var 76); 77 78// loop through with each element of the $to array to test strtr() function 79$count = 1; 80for($index = 0; $index < count($to_arr); $index++) { 81 echo "\n-- Iteration $count --\n"; 82 $to = $to_arr[$index]; 83 var_dump( strtr($str, $from, $to) ); 84 $count ++; 85} 86 87fclose($file_handle); //closing the file handle 88 89?> 90===DONE=== 91--EXPECTF-- 92*** Testing strtr() function: with unexpected inputs for 'to' *** 93 94-- Iteration 1 -- 95string(6) "0120tm" 96 97-- Iteration 2 -- 98string(6) "0121tm" 99 100-- Iteration 3 -- 101string(6) "012-2m" 102 103-- Iteration 4 -- 104string(6) "51210." 105 106-- Iteration 5 -- 107string(6) ".52-20" 108 109-- Iteration 6 -- 110string(6) "234101" 111 112-- Iteration 7 -- 113 114Warning: strtr() expects parameter 3 to be string, array given in %s on line %d 115NULL 116 117-- Iteration 8 -- 118 119Warning: strtr() expects parameter 3 to be string, array given in %s on line %d 120NULL 121 122-- Iteration 9 -- 123 124Warning: strtr() expects parameter 3 to be string, array given in %s on line %d 125NULL 126 127-- Iteration 10 -- 128string(6) "0121tm" 129 130-- Iteration 11 -- 131string(6) "012atm" 132 133-- Iteration 12 -- 134string(6) "0121tm" 135 136-- Iteration 13 -- 137string(6) "012atm" 138 139-- Iteration 14 -- 140string(6) "012atm" 141 142-- Iteration 15 -- 143string(6) "012atm" 144 145-- Iteration 16 -- 146string(6) "plesam" 147 148-- Iteration 17 -- 149 150Warning: strtr() expects parameter 3 to be string, resource given in %s on line %d 151NULL 152 153-- Iteration 18 -- 154string(6) "012atm" 155 156-- Iteration 19 -- 157string(6) "012atm" 158===DONE=== 159