這篇文章主要介紹了php中static和const關鍵字用法,結合實例形式分析了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中static和const關鍵字用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!