substr 或 strlen - 哪个性能最好? PHP

substr or strlen - Which offers the best performance? PHP

我需要 运行 检查多个变量,其中一些变量是 url,其他变量只包含不超过 5 或 6 个字符,none 其中 "http"。

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

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

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

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

编辑 对于任何其他感兴趣的人,我发现了这个 great page,其中 运行 是各种不同功能的实时比较。它没有针对我的特定问题,但仍然非常有用。

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

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

您可以 运行 在下面的任何在线 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 在速度方面表现出更好的性能。在处理器负载方面,每个函数的汇编代码都需要比较。