1. 程式人生 > >靜態方法與普通方法

靜態方法與普通方法

1.靜態方法

靜態方法和靜態屬性的引用方法 例如

class Test{
    public static $test = 1;
    public static function test(){
    }
}

可以不用例項化物件

靜態變數直接使用 Test::$test 來取得$test屬性的值
靜態方法呼叫也同理Test::test(); 直接呼叫靜態方法test

2.非靜態方法

也就是不需要例項化物件,直接通過類名對類中的方法進行引用

class Test{

       static function quite(){
            echo "靜態方法的"
        }
        function unquite(){
            echo "非靜態方法的"
        }
}
//呼叫非靜態方法的時候  程式的方式
$obj = new Test();
$obj -> unquite();

3.對比

靜態方法 :

1.從程式執行開始 就例項生成記憶體 ,所以可以直接呼叫,效率會高很多,但靜態記憶體是有限制的,例項太多,程式會啟動不了,2.靜態記憶體會常駐

非靜態方法:

1.例項方法開始生成記憶體,在呼叫時申請零散的記憶體,所以效率會慢很多 ,

2.非靜態的用完就釋放了  不會常駐