现在的位置: 首页 > 综合 > 正文

php类中的各变量返回方法的效率比较

2013年10月04日 ⁄ 综合 ⁄ 共 803字 ⁄ 字号 评论关闭

最近在优化一个项目时,发现代码中很多的变量返回是通过类静态方法返回的,感觉这样效率应该会比较低,所以今天做了一个测试。代码如下:

<?php
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}
class a
{
    public static $a='a';
    const B='b';
    public static function c()
    {
        return 'c';
    }
}
$sTime = microtime_float();
for($i=0;$i<=100000;$i++) {
    $bb = a::B;
}
$eTime = microtime_float();
echo "Time1:".($eTime-$sTime)."/n";

$sTime = microtime_float();
for($i=0;$i<=100000;$i++) {
    $bb = a::$a;
}
$eTime = microtime_float();
echo "Time2:".($eTime-$sTime)."/n";
$sTime = microtime_float();
for($i=0;$i<=100000;$i++) {
    $cc = a::c();
}
$eTime = microtime_float();
echo "Time3:".($eTime-$sTime)."/n";

 

结果如下:

Time1:0.053668975830078
Time2:0.055555820465088
Time3:0.13153195381165

 

由此可以看到,在需要类返回一个变量时,用类方法返回一个变量的做法效率是最低的,时间是类静态变量的两倍,类常量的效率最高,不过类常量只用返回标准变量,不能用于返回数组和对象。

抱歉!评论已关闭.