php中static的用法

2021-06-22 03:09:33 字數 1246 閱讀 9766

大家都知道,static是靜態變數或者靜態方法的修飾符,那麼就static的用法舉幾個簡單的例子加以說明

在普通函式中的用法:

function test()

test();   //2

test();   //3

test();   //4

說明:普通函式中,static 區域性變數當函式被執行的時候,只初始化一次,然後儲存函式作用以後的值,下次再呼叫的時候,用的是作用以後的值,不會再初始化

類中static的用法:

需要說明的是,如果例項化了乙個物件,那麼var_dump($object)的時候,靜態屬性不會顯示出來

class a這裡說明下的是$this的用法,後面單獨說}}

class b extends a

$b = new b;

$b->test();                  //2

b::$a = 'hello';

echo a::$a.'||'.b::$a;   //hello||hello

如果子類中沒有重寫父類的屬性,那麼公用其中的乙個$a,在子類的物件或者父類靜態呼叫或者改變$a的值的時候,那麼這個值就會改變,無論子類或者父類再呼叫的時候,都會顯示改變後的值。

class c

}class d extends c

$d = new d;

$d->test();

echo c::$a.'||'.d::$a;

d::$a = 'hello,world';

echo '

';echo c::$a.'||'.d::$a;

執行結果:

2||2||hello

2||hello,world

如果子類中重寫了靜態屬性,那麼相當於父類和子類中各有乙份自己的$a,改變任何其中的乙個不會對另外的那個類造成影響。

static還有另外的一種用法是static可以做靜態延遲繫結。

class a}}

class b extends a

}a::f();

b::f1();

b::f();

輸出的結果是:

xiaomingxiaoxiao

其中static代表的是當前呼叫類,是在執行指令碼的時候去呼叫的,可以理解為,是和類b繫結的,所以才會輸出b的name。

至此static的用法已經算是完成,其實也就是上述的三種:

1.區域性變數

2.類的成員,包括成員屬性和成員方法

3.靜態延遲繫結

PHP中 static 的用法

1.宣告靜態變數 靜態變數僅在區域性函式域中存在且只被初始化一次,當執行程式離開此作用域時,其值不會消失,會延用上次執行的結果。function demo 2.宣告靜態屬性 在類內部,將類的屬性 可見性 public protected或private 宣告為靜態屬性,如果沒有顯式地指定靜態屬性的可...

C C 中static的用法

c c 的static有兩種用法 面向過程程式設計中的static和物件導向程式設計中的static。前者應用於普通變數和函式,不涉及類 後者主要說明static在類中的作用。一 面向過程設計中的static 1 靜態全域性變數 在全域性變數前,加上關鍵字static,該變數就被定義成為乙個靜態全域...

JAVA中static的用法

1.類中的static變數在類載入時首先被初始化,且只能初始化一次.2.所有物件共享類中的static變數.3.在建立子類的物件時,先初始化父類的static變數,再初始化子類的static.例項如下 輸出結果為 i m in class a s static i m in class b s st...