靜態方法與普通方法
阿新 • • 發佈:2019-01-09
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.非靜態的用完就釋放了 不會常駐