本文實例講述了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基本語法入門教程》、《PHP運算與運算符用法總結》、《php面向對象程序設計入門教程》、《PHP網絡編程技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。