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」關鍵字。但是不用使用「$」符號,也不能使用物件來訪問。
<?phpclass
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 定義並初始化靜態成員...