缘起
如果你用PHP实现算法的话,效率可能会是比较关心的问题;对于大量的循环,循环体内任何一个操作都可能严重影响算法的效率,而字符串的截取也是最常见的操作;对于截取字符串中的一个字节的操作有两种写法:substr($string, $start, 1); 和 $string{$start}; 当然 $string{$start} 也可以写作 $string[$start]; 这里比较一下二者的效率。
测试
结论
使用$string{$start} 是 使用substr($string, $start, 1); 的效率的10倍, 其实,前者写起来还更方便呢。
脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $str = 'abcd'; $time_start = microtime(1); $i = 0; while($i++<100000) { $str{2}; } echo 'use $str{2}:',"\t\t\t", microtime(1) - $time_start , " s\n"; $time_start = microtime(1); $i = 0; while($i++<100000) { substr($str, 2, 1); } echo 'use substr($str, 2, 1):',"\t", microtime(1) - $time_start, ' s'; exit; |