php – 静态方法比非静态方法快吗?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 静态方法比非静态方法快吗?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
编辑::哦,我忘了
class test1{
    public static function test(){
        for($i=0; $i<=1000; $i++)
            $j += $i;       
    }   
}

class test2{
    public function test() {
        for ($i=0; $i<=1000; $i++){
            $j += $i;
        }
    }

}

对于这个算法

$time_start = microtime();
$test1 = new Test2();
for($i=0; $i<=100;$i++)
    $test1->test();
$time_end = microtime();

$time1 = $time_end - $time_start;

$time_start = microtime();
for($i=0; $i<=100;$i++)
    Test1::test();
$time_end = microtime();    

$time2 = $time_end - $time_start;
$time = $time1 - $time2;
echo "Difference: $time";

我有结果

Difference: 0.007561

而且这些天,我试图使我方法尽可能的静态.但是真的是真的吗,至少为PHP

当你不需要你周围的对象的方法时,你应该总是使用静态的,并且当你需要一个对象时使用动态的.在您提供的示例中,您不需要对象,因为该方法不与您的类中的任何属性或字段进行交互.

这个应该是静态的,因为它不需要一个对象:

class PErson {
    public static function GetPersonByID($id) {
        //run sql query here
        $res = new Person();
        $res->name = $sql["name"];
        //fill in the object
        return $res;
    }
}

这应该是动态的,因为它使用它所在的对象:

class Person {
    public $Name;
    public $Age;
    public function HaveBirthday() {
        $Age++;
    }
}

速度差异很小,但您必须创建一个对象来运行动态方法,并将该对象保存在内存中,因此动态方法使用更多的内存和更多的时间.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 静态方法比非静态方法快吗?全部内容,希望文章能够帮你解决php – 静态方法比非静态方法快吗?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。