php中static關鍵字

2021-10-01 20:12:00 字數 1287 閱讀 5576

很容易相當可以宣告類屬性或者類方法為靜態,靜態屬性和方法嗾使屬於類的,靜態屬性不能通過物件訪問,但靜態方法可以通過物件訪問。

php中static變數只存在於本地函式中,但程式執行完本函式之後,static變數還會一直儲存,也即是 數執行$a 該變數只會被例項化一次。

function

test()

// 都會輸出0

for($i=

0;$i<5;

$i++

)//result :0 0 0 0 0

function

test()

// 都會輸出0

for($i=

0;$i<5;

$i++

)//result :0 1 2 3 4

將變數a宣告為static後,每次函式執行$a 只會被例項化一次。

因此 :在遞迴函式中,用static可以作為函式執行計數器來使用。

class

astatic

function

fun()}

class

bextendsa}

$obj

=newb(

);$obj

->

printname()

;// 輸出結果

// tom

// a class

在printname函式裡面使用了self關鍵字,self是指向當前類的"指標",

是這樣的,在定義a類的是時候,在函式printname裡面使用self關鍵字呼叫了靜態方法或屬性,

但是這個函式一旦定義好,a類的靜態方法和屬性就被繫結到函式了,不要去追究為什麼,php就是這麼實現的,

但是我們現在要實現這樣的效果,就是函式定義好後裡面使用到的靜態方法和屬性不要立即繫結死,

而是根據最終繼承的類來確定繫結。

所以php在5.5以後使用了static關鍵字來解決這個問題,解決後的**例子如下:

class

astatic

function

fun()}

class

bextendsa}

$obj

=newb(

);$obj

->

printname()

;// 輸出結果

// join

// b class

延遲了繫結的類,就實現了需要延遲靜態繫結。

參考:

this關鍵字 static關鍵字

1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...

Java this關鍵字,static關鍵字

1,this.屬性,this.方法,表示當前物件的屬性,當前類的方法 2,this,表示當前物件,當前正在操作這個方法的物件就是當前物件 3,使用this 引數若干 可以呼叫當前類的構造方法,如果,構造方法之間相互呼叫,則有要求 一 this 必須放在首行,二 至少有乙個構造方法是沒有呼叫this ...

static關鍵字 final 關鍵字

特點 隨著類的載入而載入,也就是說靜態會隨著類的消失而消失,說明他的生命週期最長 靜態變數 static 關鍵字修飾成員變數,使用 類名.變數名 的形式來訪問,也可以使用 例項物件.變數名 的形式來訪問。靜態方法 static 關鍵字修飾成員函式,靜態方法可以使用 類名.方法名 的形式來訪問,也可以...