PHP靜態(tài)方法和靜態(tài)屬性及常量屬性的區(qū)別與介紹
PHP中若使用static關(guān)鍵字來修飾屬性、方法,稱這些屬性、方法為靜態(tài)屬性、靜態(tài)方法。static關(guān)鍵字聲明一個屬性或方法是和類相關(guān)的,而不是和類的某個特定的實例相關(guān),因此,這類屬性或方法也稱為“類屬性”或“類方法”。
程序中為什么要使用靜態(tài)方法和屬性呢?它們有幾個特性是比較有用的:不需要實例化類就可以訪問靜態(tài)方法和屬性,在代碼的任何地方都可以使用!
<?php class Example{ static public $num = 0; static public function staticFunc(){ self::$num++; print self::$num; } } echo Example::$num; echo Example::staticFunc(); ?>
需要注意的是:
1.靜態(tài)方法不能訪問普通屬性,只能訪問靜態(tài)屬性
2.靜態(tài)方法是以類為作用域的,所以不用實例化就可以使用::來連接靜態(tài)屬性和靜態(tài)方法
3.靜態(tài)方法中不能使用偽關(guān)鍵詞
那么常量屬性和靜態(tài)屬性有什么區(qū)別呢?
<?php class Example{ const NUM = 0; //... } ?>
常量屬性不以$開頭 而是以大寫字母命名,他與靜態(tài)屬性的區(qū)別是它不可以被重新復(fù)制,否則會解析錯誤。
常量屬性
有些屬性是不能改變的
在PHP 5可以在類中定義常量屬性,和全局變量一樣,類常量一旦設(shè)置后就不能改變。常量屬性用const關(guān)鍵字來聲明。常量不像常規(guī)屬性那樣以 $ 開頭。按照慣例,只能用大寫字母來命名常量,如下所示:
class shopProduct { constAVAILABLE = 0; //… }
常量屬性只包含基本數(shù)據(jù)類型的值。不能將一個對象指派給常量。像靜態(tài)屬性一樣,只能通過類而不能通過類的實例訪問常量屬性。引用常量時不需要用 $ 作為前導(dǎo)符,如下所示:
echoshopProduct::AVAILABLE;
給已經(jīng)聲明過的常量賦值會引起解析錯誤。
當需要在類的所有實例中都能訪問某個屬性,并且屬性值無需改變時,應(yīng)該使用常量。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
PHP獲取網(wǎng)頁所有連接的方法(附demo源碼下載)
這篇文章主要介紹了PHP獲取網(wǎng)頁所有連接的方法,涉及PHP基于curl針對網(wǎng)頁的操作技巧,并帶附demo源碼供讀者下載參考,需要的朋友可以參考下2016-03-03PHP正則匹配操作簡單示例【preg_match_all應(yīng)用】
這篇文章主要介紹了PHP正則匹配操作,結(jié)合簡單實例形式分析了php中preg_match_all針對HTML標簽中P元素及img src元素內(nèi)容的獲取技巧,需要的朋友可以參考下2017-07-07php實現(xiàn)的簡單數(shù)據(jù)庫操作Model類
這篇文章主要介紹了php實現(xiàn)的簡單數(shù)據(jù)庫操作Model類,結(jié)合實例形式分析了php數(shù)據(jù)庫操作模型類的定義與使用技巧,包括數(shù)據(jù)庫的基本增刪改查等功能,需要的朋友可以參考下2016-11-11PHP圖片處理之使用imagecopyresampled函數(shù)裁剪圖片例子
這篇文章主要介紹了PHP圖片處理之使用imagecopyresampled函數(shù)裁剪圖片例子,本文例子相對簡單,是一篇入門級的學習總結(jié),需要的朋友可以參考下2014-11-11php實現(xiàn)執(zhí)行某一操作時彈出確認、取消對話框
當執(zhí)行某一操作比如確認或者取消時如何彈出對話框,針對這個需求,下面使用php來實現(xiàn)下,感興趣的朋友不要錯過2013-12-12