案例一:
創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營產(chǎn)品:成都響應(yīng)式網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、成都全網(wǎng)營銷。我們專注企業(yè)品牌在網(wǎng)站中的整體樹立,網(wǎng)絡(luò)互動的體驗,以及在手機(jī)等移動端的優(yōu)質(zhì)呈現(xiàn)。成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、移動互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營、VI設(shè)計、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場的競爭激烈,認(rèn)真對待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價值服務(wù)。實(shí)踐目標(biāo):
1、靜態(tài)屬性的定義 ,直接在屬性定義前加static 比如 static public $name ;
2、靜態(tài)屬性不能用類的實(shí)例去獲取,而是通過以下方式獲?。?/p>
● 類名::$屬性名稱
● 在類的內(nèi)部,可以通過self::$屬性名稱
"; } } //輸出靜態(tài)屬性 echo "名稱為:".Human::$name."
"; $human = new Human(); $human->say(); ?>
運(yùn)行結(jié)果為:
案例二:
實(shí)踐目標(biāo):
1、靜態(tài)方法的定義,直接在方法定義前加static 比如static public function Hello(){ }
2、靜態(tài)方法不能用類的實(shí)例去獲取,而是通過以下方式獲?。?/p>
● 類名::方法名稱
● 在類的內(nèi)部,可以通過self::方法名稱
"; } } //輸出靜態(tài)方法 Human::staticFun1(); //運(yùn)行構(gòu)造函數(shù),看是否可以被正常調(diào)用 $human = new Human(); ?>
運(yùn)行結(jié)果為:
案例三:
實(shí)踐目標(biāo):
1、在php中,不能用static修飾類,只能修飾屬性或者方法
運(yùn)行結(jié)果為:
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting :: (T_PAAMAYIM_NEKUDOTAYIM) in D:\E-class\class-code\classing\index.php on line 2
案例四:
實(shí)踐目標(biāo):
1、 靜態(tài)方法內(nèi)部不能調(diào)用非靜態(tài)屬性,只能調(diào)用靜態(tài)屬性
commonName."
"; } //測試靜態(tài)方法調(diào)用靜態(tài)屬性 static public function staticFun2(){ echo self::$staticName."
"; } } Human::staticFun2();//OK Human::staticFun1();//not OK ?>
運(yùn)行結(jié)果為:
靜態(tài)屬性-人類
Fatal error: Uncaught Error: Using $this when not in object context in D:\E-class\class-code\classing\index.php:8 Stack trace: #0 D:\E-class\class-code\classing\index.php(18): Human::staticFun1() #1 {main} thrown in D:\E-class\class-code\classing\index.php on line 8
案例五:
實(shí)踐目標(biāo):
1、 靜態(tài)方法內(nèi)部不能調(diào)用非靜態(tài)方法,只能調(diào)用靜態(tài)方法
commonFun1(); } static public function staticFun2(){ echo "我是靜態(tài)方法2
"; } //普通方法 public function commonFun1(){ echo "我是普通方法1
"; } } Human::staticFun1(); ?>
運(yùn)行結(jié)果為:
我是靜態(tài)方法2
Fatal error: Uncaught Error: Using $this when not in object context in D:\E-class\class-code\classing\index.php:8 Stack trace: #0 D:\E-class\class-code\classing\index.php(20): Human::staticFun1() #1 {main} thrown in D:\E-class\class-code\classing\index.php on line 8
案例六:
實(shí)踐目標(biāo):
1、非靜態(tài)方法內(nèi)部,既可以調(diào)用非靜態(tài)屬性也可以調(diào)用靜態(tài)屬性
"; echo $this->name."
"; } } $human = new Human(); $human->commonFun1(); ?>
運(yùn)行結(jié)果為:
靜態(tài)屬性-人類
非靜態(tài)屬性-人類
案例七:
實(shí)踐目標(biāo):
1、非靜態(tài)方法內(nèi)部,既可以調(diào)用非靜態(tài)方法也可以調(diào)用靜態(tài)方法
commonFun2(); } //測試靜態(tài)方法調(diào)用 靜態(tài)方法 static public function staticFun1(){ echo "我是靜態(tài)方法1
"; } public function commonFun2(){ echo "我是普通方法2
"; } } $human = new Human(); $human->commonFun1(); ?>
運(yùn)行結(jié)果為:
我是靜態(tài)方法1
我是普通方法2
1、所有的NBA球員都有一個共同的聯(lián)盟總裁,David Stern(大衛(wèi)*斯特恩)
2、總裁換成了“Adam Silver” 怎么辦?
大家自己思考一下,再看后面的結(jié)果
.........................
答案揭曉:
思路分析:
1、“換”是一個動詞,換總裁,所以是一個方法,而總裁是一個數(shù)據(jù),所以是一個屬性
2、換總裁要達(dá)到一個目的就是,換了以后,這個對象仍然要被其他所有的NBA球員對象使用到
3、既然 總裁 (屬性) 要被所有的NBA球員對象 共享,那么我們就可以結(jié)合static的作用,將總裁屬性定義為靜態(tài)屬性
4、所以根據(jù)綜上所述,大概的思路就是定義一個NBA球員類,然后類里面主要有靜態(tài)屬性“總裁”和一個 換總裁 的方法
具體代碼如下:
name = $name; } //總裁 static public $president = "David Stern"; //換總裁方法 public function changePresident($name){ self::$president = $name; } } $jordon = new NbaPlayer("喬丹"); $kebo = new NbaPlayer("科比"); echo "輸出他們目前共同的總裁,總裁為:".NbaPlayer::$president."
"; echo "現(xiàn)在把喬丹總裁換成Adam Silver
"; $jordon->changePresident("Adam Silver"); echo "輸出科比的總裁是否也和喬丹的一樣,科比總裁為:".NbaPlayer::$president."
"; ?>
運(yùn)行結(jié)果為:
輸出他們目前共同的總裁,總裁為:David Stern
現(xiàn)在把喬丹總裁換成Adam Silver
輸出科比的總裁是否也和喬丹的一樣,科比總裁為:Adam Silver
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。