在PHP面向?qū)ο笾幸话阄覀兌际菍?shí)例化一個(gè)類得到一個(gè)對(duì)象來訪問這個(gè)對(duì)象的屬性和方法,把對(duì)象當(dāng)做是活動(dòng)的組件,對(duì)象的方法可以用來被調(diào)用,對(duì)象的屬性可以被訪問,其實(shí)面向?qū)ο蟮暮艽笠粋€(gè)特點(diǎn)是操作通過類實(shí)例化的對(duì)象來完成,畢竟,類僅僅是對(duì)象的一個(gè)模板而已,但是對(duì)于靜態(tài)方法或者是靜態(tài)屬性而言,我們可以直接通過類來訪問他們,只要我們用static關(guān)鍵字聲明他們就好了.
**static是php5后引入的,在這之前的版本是不能使用的,
總結(jié)如下:
1.靜態(tài)方法是以類作為作用域的函數(shù),所以靜態(tài)方法不能訪問非靜態(tài)的屬性,因?yàn)樗麄儗儆趯?duì)象而不是類,但是可以訪問靜態(tài)屬性
2.在類外部可以通過類名::屬性名/方法名來實(shí)現(xiàn)的,區(qū)別于一般的->普通訪問方式,
StaticClass::$sataic_name;
StaticClss::Static_Function();
3.在類的內(nèi)部,可以通過self::屬性名/方法名來實(shí)現(xiàn),
calss StaticClass{
? ? public? static $static_num = 0;
? ? public? static public function(){
? ? ? ? self::$static_num++';
? ? ? ? print "hello(".self::$static_num.")";
????}
}
所以根據(jù)定義,我們也不能在對(duì)象中調(diào)用靜態(tài)方法,因此靜態(tài)方法和屬性又被稱為類變量和屬性,因此不能再靜態(tài)方法中使用偽變量$this;