static和const關鍵字的使用

2021-09-22 11:20:42 字數 1177 閱讀 2255

static關鍵字在類中描述的成員屬性和成員函式都是靜態的。

static成員能限制外部的訪問,因為static成員是屬於類的,而不是屬於任何物件例項。

從記憶體的角度講,其中物件是放在「堆記憶體」中,物件的引用是放在「棧記憶體」中,而靜態成員被放在初始化靜態段中,在類的第一次載入的時候加入的。可以讓對記憶體中的所有物件所共享。如下圖所示:

}//輸出靜態屬性

echo person::$mycountry.""

;//呼叫靜態方法

person::say();

//修改靜態屬性

person::$mycountry = "

中國-江蘇";

echo person::$mycountry."";

?>

輸出結果為:

中國我的祖國是:中國

中國-江蘇

類中的靜態方法只能訪問類的靜態的屬性。類中的靜態的方法是不能訪問類的非靜態的成員的。我們用self來訪問類中的靜態屬性。self與thi

s相似,

只不過s

elf代

表靜態方

法所在的

類,this相似,只不過self代表靜態方法所在的類,

this引用指標,代表呼叫此方法的物件。靜態方法是不用物件呼叫的,所有就沒有thi

s這個引

用了。沒

有this這個引用了。沒有

this,就沒辦法呼叫類中的其他的成員屬性。

const是乙個定義常量的關鍵字。在類裡面常用const來定義常量。用「const」修飾的成員屬性的訪問方式和「static」修飾的成員訪問的方式差不多,也是使用「類名」,在方法裡面使用「self」關鍵字。但是不用使用「$」符號,也不能使用物件來訪問。

<?php 

class

myclass}//

類直接呼叫,沒有$

echo myclass::constant."";

$class = new

myclass();

$class ->showconstant();

?>

關鍵字static和const

static在c語言中的作用 static修飾區域性變數,改變區域性變數的生命週期,但是不改變其作用域,生命週期直到檔案銷毀。static修飾全域性變數,改變全域性變數的連線屬性,只能在本檔案中被使用,使用extern外部宣告也不行。static在c 的作用 宣告為static的類成員,成為類的靜態...

static關鍵字和const關鍵字的作用

static關鍵字至少有下列n個作用 1 函式體內static變數的作用範圍為該函式體,不同於auto變數,該變數的記憶體只被分配一次,因此其值在下次呼叫時仍維持上次的值 2 在模組內的static全域性變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問 3 在模組內的static函式只可被這...

C C 關鍵字 static 和 const

參考 1.靜態全域性變數和函式 靜態全域性變數 static a 靜態函式 static void myfunc 2.靜態區域性變數 靜態區域性變數 每次呼叫該函式a都會加1,不會被重新初始化為0。void myfunc 3.靜態類成員變數和函式 類 class myclass 定義並初始化靜態成員...