很多地方看到一篇文章,写着strtr函数的效率是str_replace函数的四倍,这是真的吗?
下面来写一段代码做验证
$num = 100000; echo microtime(true); for($i=0;$i<$num;$i++){ $x=strtr("just a test",array("test"=>"TEST")); }; echo " ".$x." ".microtime(true); echo "<br>以上为strtr10W次,以下为str_replace10W次<br>"; echo microtime(true); for($i=0;$i<$num;$i++){ $x=str_replace("test","TEST","just a test"); } echo " ".$x." ".microtime(true);
然后运行的结果是
1469465118.7737 just a TEST 1469465118.7903
以上为strtr10W次,以下为str_replace10W次
1469465118.7903 just a TEST 1469465118.8048
发现了没?strtr并没有快四倍,感觉还比str_replace更慢了一些!