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

php中static和const關鍵字用法

墨辰丷
墨辰丷原創
2018-05-29 17:08:511484瀏覽

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

以上就是本文的全部內容,希望對大家的學習有幫助。


相關推薦:

php的程式碼最佳化

##php 多繼承的幾種方法


php-fpm.conf 設定說明


################ ##

以上是php中static和const關鍵字用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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