本文執行個體講述了php中static和const關鍵字用法。分享給大家供大家參考,具體如下:
static關鍵字在類中描述的成員屬性和成員函數都是靜態。
static成員能限制外部的訪問,因為static成員是屬於類的,而不是屬於任何對象執行個體。
從記憶體的角度講,其中對象是放在“堆記憶體”中,對象的引用是放在“棧記憶體”中,而靜態成員被放在初始化靜態段中,在類的第一次載入的時候加入的。可以讓對記憶體中的所有對象所共用。如所示:
<?phpclass Person{ public static $myCountry = "中國"; public static function say(){ echo "我的祖國是:".self::$myCountry."<br>"; }}//輸出靜態屬性echo Person::$myCountry."<br>";//調用靜態方法Person::say();//修改靜態屬性Person::$myCountry = "中國-江蘇";echo Person::$myCountry."<br>";?>
輸出結果為:
中國我的祖國是:中國中國-江蘇
類中的靜態方法只能訪問類的靜態屬性。類中的靜態方法是不能訪問類的非靜態成員的。我們用self來訪問類中的靜態屬性。self與this相似,只不過self代表靜態方法所在的類,this相似,只不過self代表靜態方法所在的類,this引用指標,代表調用此方法的對象。靜態方法是不用對象調用的,所有就沒有this這個引用了。沒有this這個引用了。沒有this,就沒辦法調用類中的其他的成員屬性。
const是一個定義常量的關鍵字。在類裡面常用const來定義常量。用“const”修飾的成員屬性的訪問方式和“static”修飾的成員訪問的方式差不多,也是使用“類名”,在方法裡面使用“self”關鍵字。但是不用使用“$”符號,也不能使用對象來訪問。
<?phpclass MyClass{ const constant = 'constant value'; function showConstant(){ //方法中調用常量,沒有$ echo self::constant."<br>"; }}//類直接調用,沒有$echo MyClass::constant."<br>";$class = new MyClass();$class ->showConstant();?>
希望本文所述對大家PHP程式設計有所協助。