哪个更快,连接器或 PHP 本机函数

  • 本文关键字:PHP 本机 函数 连接器 php
  • 更新时间 :
  • 英文 :


>当我想获取字符串的几位时

$str = 'abcd' ;大多数人使用 substr ( $str, 0, 2 ) ;为什么不呢 $prefix = $str[0] . $str[1] ;

运行这两个函数 100.000 次以获得合理可接受的测量值:

<?php
$str = 'abcd';
$before = microtime(true);
for ($i=0 ; $i<100000 ; $i++) {
    substr($str, 0, 2);
}
$after = microtime(true);
echo ($after-$before)/$i . " sec/substrn";
$before = microtime(true);
for ($i=0 ; $i<100000 ; $i++) {
    $str[0] . $str[1] ;
}
$after = microtime(true);
echo ($after-$before)/$i . " sec/concatenaten";
?>

生成以下结果:

4.8739910125732E-8秒/秒
5.666971206665E-8 秒/连接

多次运行它的平均差异在 0.3 到 0.6 秒之间,其中substr()比串联快。我想这与以下事实有关:substr()只需要一个操作,而$str[0] . $str[1]需要 3 个操作(获取值和连接本身(。我怀疑差异会根据所需的操作量而增加。

动态

怎么样? :D

echo implode(" ", $Arrayofstrings );

要查看更快的方法,只需搜索基准测试:

赢家是substr,这是这种操作最快的功能。

测试: substr($var, 5, 1( vs. isset && {5}

完整的测试菜单

PHP 5

substr比连接器慢,如果你想要最快的执行方法,它是

"$str[0]$str[1]"

菲律宾比索 7

优化了 PHP7 中的 JIT 和调用转换,因此调用 substr 比 PHP5 中快得多

最新更新