php中static和const關鍵字用法分析

來源:互聯網
上載者:User
本文執行個體講述了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程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.