您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關php中const和static變量有哪些區別,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
區別:const一旦被定義不可更改,static修飾的變量是可以被更改的。const只可以修飾類的屬性,不能修飾類的方法;static可以修飾屬性,也可以修飾方法。
PHP中 static 與 const 變量的區別
static變量
1.static靜態變量 我們可以對于其 進行修改,但是const變量我們不能對其進行修改
2.static 靜態變量可以對其修改權限
3.和java類似,在類的內部,satic 修飾的方法的體內無法訪問類的非staic成員變量,只能訪問類的staic變量和類的const常量
class staticTest1 { var $var1 = "hello"; public static $var2 = "hellostatic"; //public, protected, private const var3 = "helloconst"; public static function displayDifferent(){ ### echo $this->$var1."<br>";//不能訪問普通變量 echo staticTest1::$var2."<br>";//可以訪問類的靜態變量 echo self::var3."<br>";//不能用$this::var3, self::var3代表當前類,$this::var3代表當前對象 } }
//可以用兩種方法調用方法
//第一種,通過對象調用 $test1 = new staticTest1(); echo $test1->displayDifferent(); echo "<br>"; //第二種,通過類調用 echo staticTest1::displayDifferent(); echo "<br>";
順便一提,”::” 對于對象而言只能訪問靜態變量和方法,還有self只能用”::”來調用當前類的成員
1.const變量只能修飾成員變量,不能修飾方法
2.不需要加修飾權限
3.因為const變量屬于整個類的,不屬于某個對象,所以不能通過對象來訪問,像$this->constvariable就不允許
class constTest1 { var $var1 = "welcome"; // public const pi = 3.14;//不能加修飾權限 const pi = 3.14; // const function displayDifferent() {//function前不能加const // // } function displayDifferent() { echo self::pi."<br>"; // echo $this::pi."<br>"; } static function displayDifferent2() { echo self::pi."<br>"; // echo $this::pi."<br>"; //這句話不行。 } }
兩種方法調用
//第一種,通過對象調用 $test2 = new constTest1(); echo $test2->displayDifferent(); //第二種,通過類調用 //echo constTest1::displayDifferent();//對象名用"::"只能訪問靜態變量和方法,所以這個不行 echo constTest1::displayDifferent2();
關于“php中const和static變量有哪些區別”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。