本文實例講述了php中static和const關鍵字用法。分享給大家供大家參考,具體如下:
static關鍵字在類別中所描述的成員屬性和成員函數都是靜態的。
static成員能限制外部的訪問,因為static成員是屬於類別的,而不是屬於任何物件實例。
從記憶體的角度講,其中物件是放在「堆疊記憶體」中,物件的引用是放在「堆疊記憶體」中,而靜態成員被放在初始化靜態段中,在類別的第一次載入的時候加入的。可以讓對記憶體中的所有物件所共享。如下圖所示:
<?php class 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”關鍵字。但是不用使用“$”符號,也不能使用物件來存取。
<?php class MyClass{ const constant = 'constant value'; function showConstant(){ //方法中调用常量,没有$ echo self::constant."<br>"; } } //类直接调用,没有$ echo MyClass::constant."<br>"; $class = new MyClass(); $class ->showConstant(); ?>
希望本文所述對大家PHP程式設計有所幫助。
更多php中static和const關鍵字用法分析相關文章請關注PHP中文網!