PHP字符串函数strtr两种传参方式的不同

strtr函数用于转换指定字符,有两种传参方式:

string strtr(string $str,string $from,string $to)
string strtr(string $str,array $replace_pairs)

第一种方式将$from中的字符转换为$to中的字符,转换按位进行,即$from[$n]转换为$to[$n],多余的部分将会被忽略,转换后的字符不会被再次转换。这种转换方式意味着不需要完全匹配就会进行转换,只要遇到$from中存在且有$to中也有对应的值的话就会进行转换,如果$from中出现了相同的字符,则会按最后面的映射关系去转换,返回的字符串长度与传入的字符串长度一致。

第二种方式是将$from和$to以array($from=>$to...)的形式传入函数,以此种方式调用时函数时,长度较长的key先做替换,替换后的字符不会被再次转换,与第一种方式不同的是只有在键完全匹配的情况下才会进行转换。

此外两种方式对空字符串的处理也不同,第一种方式中如果$from为空字符串,则不会进行任何转换并将原字符串返回,而第二种方式如果$from为空字符串,则返回false。

$str="adccbcde";
echo strtr($str,"cdma","asd")."\n";
echo strtr($str,"cdca","asd")."\n";
echo strtr($str,array("cde"=>"cdefg","de"=>"cdma"))."\n";
echo strtr($str,"","asd")."\n";
var_dump(strtr($str,array(""=>"cdefg","de"=>"cdma")));

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值