首頁 >後端開發 >php教程 >php中static和const關鍵字用法分析

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

高洛峰
高洛峰原創
2017-01-06 14:04:221215瀏覽

本文實例講述了php中static和const關鍵字用法。分享給大家供大家參考,具體如下:

static關鍵字在類別中所描述的成員屬性和成員函數都是靜態的。

static成員能限制外部的訪問,因為static成員是屬於類別的,而不是屬於任何物件實例。

從記憶體的角度講,其中物件是放在「堆疊記憶體」中,物件的引用是放在「堆疊記憶體」中,而靜態成員被放在初始化靜態段中,在類別的第一次載入的時候加入的。可以讓對記憶體中的所有物件所共享。如下圖所示:

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

<?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 = &#39;constant value&#39;;
 function showConstant(){
  //方法中调用常量,没有$
  echo self::constant."<br>";
 }
}
//类直接调用,没有$
echo MyClass::constant."<br>";
$class = new MyClass();
$class ->showConstant();
?>

希望本文所述對大家PHP程式設計有所幫助。

更多php中static和const關鍵字用法分析相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn