substr或strlen - 哪种性能最佳? PHP

时间:2018-03-29 00:53:06

标签: php substr strlen

我需要对多个变量进行检查,其中一些变量将是网址,其他变量只包含不超过5或6个字符,其中任何一个都不是“http”。

以下两种方法中的哪一种在速度和处理器负载方面提供了最佳性能。

$str = 'http://somereallylongwebaddress.com';

if (substr( $str, 0, 4 ) === "http") {
    // true
}

if (strlen( $str >= 7 )) {
    // true
}

修改 对于任何感兴趣的人我发现这个great page运行各种不同功能的实时比较。它并没有解决我的特定问题,而是提供了非常丰富的信息。

2 个答案:

答案 0 :(得分:1)

您可以通过执行以下操作来计算PHP中任何代码的性能:

$msc = microtime(true);
// YOUR CODE
$msc = microtime(true)-$msc;
echo $msc;

答案 1 :(得分:1)

您可以使用不同的输入在下面的任何在线php编辑器中运行以下代码,并观察速度性能。

http://www.writephponline.com/

https://www.tutorialspoint.com/php_webview_online.php

<?php
$before = microtime(true);
$str = "http";
if (substr( $str, 0, 4 ) === "http") {
    // true
}
echo "strlen performance ";
echo "Time:  " . number_format(( microtime(true) - $before), 8) . " Seconds\n";

echo "\r\n";

$before = microtime(true);
if (strlen($str >= 4)) {
    // true
}
echo "substr performance ";
echo "Time:  " . number_format(( microtime(true) - $before), 8) . " Seconds\n";
echo "\r\n";
?>

根据上面代码片段的多个结果,substr在速度方面表现出更好的性能。在处理器负载方面,每个功能的汇编代码需要进行比较。