靜態類成員

2021-07-12 01:03:31 字數 615 閱讀 5800

有時,可能有必要建立共所有類例項共享的屬性和方法,這些屬性和方法與所有的類例項有關,但不能由任何特定物件呼叫。

例如,假設要編寫乙個類來跟蹤網頁訪問者的數量。你一定不希望每次例項化該類時訪問者數量重置為0,此時就可以將該屬性設定為static作用域:

<?php  

class visitor

static function getvisitors()

} //例項化visitor類

$visits = new visitor();

echo visitor::getvisitors()."

"; //例項化另乙個visitor類

$visits2 = new visitor();

echo visitor::getvisitors()."

";?>

因為$visitors 屬性被宣告為static,所以對其值的任何改變(在這裡通過類建構函式來修改)都會反應到所有例項化物件中。

注意:靜態屬性和方法應使用self 關鍵字和類名來引用,而不是通過$this 和箭頭操作符。   這是因為使用「正常」方法引用靜態屬性是不可能的,會導致語法錯誤。

類靜態成員和類靜態成員函式

當將類的某個資料成員宣告為static時,該靜態資料成員只能被定義一次,而且要被同類的所有物件共享。各個物件都擁有類中每乙個普通資料成員的副本,但靜態資料成員只有乙個例項存在,與定義了多少類物件無關。靜態方法就是與該類相關的,是類的一種行為,而不是與該類的例項物件相關。靜態資料成員的用途之一是統計有...

靜態類成員

這個是容易讓人混淆和遺忘的地方,越是基礎的東西,越容易考和出錯。類的函式和資料成員都可以是靜態的。1 靜態資料成員 c 的靜態成員變數能夠在建構函式裡初始化麼?不能。因為靜態成員屬於類作用域,而不屬於類物件。程式一執行就初始化了,不可能在構造物件的時候再初始化一次。用複製語句最好。靜態成員其實和全域...

靜態類成員

靜態變數也稱類變數,是在類的所有例項間共享 直接使用類名來引用 靜態方法通過類名觸發!c code class person public string public string profession 建構函式初始化!public person public void eating 正在吃飯!n ...