案例一:
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)公司推出龍巖免費(fèi)做網(wǎng)站回饋大家。
實(shí)踐目標(biāo):
1、靜態(tài)屬性的定義 ,直接在屬性定義前加static 比如 static public $name ;
2、靜態(tài)屬性不能用類的實(shí)例去獲取,而是通過(guò)以下方式獲?。?/p>
● 類名::$屬性名稱
● 在類的內(nèi)部,可以通過(guò)self::$屬性名稱
<?php class Human{ static public $name = "人類";//靜態(tài)屬性的定義 public function say(){ echo "self::name = ".self::$name ."<br/>"; } } //輸出靜態(tài)屬性 echo "名稱為:".Human::$name."<br/>"; $human = new Human(); $human->say(); ?>
運(yùn)行結(jié)果為:
案例二:
實(shí)踐目標(biāo):
1、靜態(tài)方法的定義,直接在方法定義前加static 比如static public function Hello(){ }
2、靜態(tài)方法不能用類的實(shí)例去獲取,而是通過(guò)以下方式獲取:
● 類名::方法名稱
● 在類的內(nèi)部,可以通過(guò)self::方法名稱
<?php class Human{ public function __construct(){ self::staticFun1(); } static public function staticFun1(){ echo "我是靜態(tài)方法<br/>"; } } //輸出靜態(tài)方法 Human::staticFun1(); //運(yùn)行構(gòu)造函數(shù),看是否可以被正常調(diào)用 $human = new Human(); ?>
運(yùn)行結(jié)果為:
案例三:
實(shí)踐目標(biāo):
1、在php中,不能用static修飾類,只能修飾屬性或者方法
<?php static class Human{ } ?>
運(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)屬性
<?php class Human{ static public $staticName = "靜態(tài)屬性-人類"; public $commonName="非靜態(tài)屬性-人類"; //定義靜態(tài)方法 靜態(tài)方法調(diào)用非靜態(tài)屬性 static public function staticFun1(){ echo $this->commonName."<br/>"; } //測(cè)試靜態(tài)方法調(diào)用靜態(tài)屬性 static public function staticFun2(){ echo self::$staticName."<br/>"; } } 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)方法
<?php class Human{ //定義靜態(tài)方法 //測(cè)試靜態(tài)方法調(diào)用 靜態(tài)方法 static public function staticFun1(){ self::staticFun2(); $this->commonFun1(); } static public function staticFun2(){ echo "我是靜態(tài)方法2<br/>"; } //普通方法 public function commonFun1(){ echo "我是普通方法1<br/>"; } } 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)屬性
<?php class Human{ static public $staticName = "靜態(tài)屬性-人類"; public $name = "非靜態(tài)屬性-人類"; ///普通方法 public function commonFun1(){ echo self::$staticName."<br/>"; echo $this->name."<br/>"; } } $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)方法
<?php class Human{ ///普通方法 public function commonFun1(){ self::staticFun1(); $this->commonFun2(); } //測(cè)試靜態(tài)方法調(diào)用 靜態(tài)方法 static public function staticFun1(){ echo "我是靜態(tài)方法1<br/>"; } public function commonFun2(){ echo "我是普通方法2<br/>"; } } $human = new Human(); $human->commonFun1(); ?>
運(yùn)行結(jié)果為:
我是靜態(tài)方法1
我是普通方法2
1、所有的NBA球員都有一個(gè)共同的聯(lián)盟總裁,David Stern(大衛(wèi)*斯特恩)
2、總裁換成了“Adam Silver” 怎么辦?
大家自己思考一下,再看后面的結(jié)果
.........................
答案揭曉:
思路分析:
1、“換”是一個(gè)動(dòng)詞,換總裁,所以是一個(gè)方法,而總裁是一個(gè)數(shù)據(jù),所以是一個(gè)屬性
2、換總裁要達(dá)到一個(gè)目的就是,換了以后,這個(gè)對(duì)象仍然要被其他所有的NBA球員對(duì)象使用到
3、既然 總裁 (屬性) 要被所有的NBA球員對(duì)象 共享,那么我們就可以結(jié)合static的作用,將總裁屬性定義為靜態(tài)屬性
4、所以根據(jù)綜上所述,大概的思路就是定義一個(gè)NBA球員類,然后類里面主要有靜態(tài)屬性“總裁”和一個(gè) 換總裁 的方法
具體代碼如下:
<?php //Nba球員類 class NbaPlayer{ public $name = ""; //構(gòu)造函數(shù)初始化對(duì)象 public function __construct($name){ $this->name = $name; } //總裁 static public $president = "David Stern"; //換總裁方法 public function changePresident($name){ self::$president = $name; } } $jordon = new NbaPlayer("喬丹"); $kebo = new NbaPlayer("科比"); echo "輸出他們目前共同的總裁,總裁為:".NbaPlayer::$president."<br/>"; echo "現(xiàn)在把喬丹總裁換成Adam Silver<br/>"; $jordon->changePresident("Adam Silver"); echo "輸出科比的總裁是否也和喬丹的一樣,科比總裁為:".NbaPlayer::$president."<br/>"; ?>
運(yùn)行結(jié)果為:
輸出他們目前共同的總裁,總裁為:David Stern
現(xiàn)在把喬丹總裁換成Adam Silver
輸出科比的總裁是否也和喬丹的一樣,科比總裁為:Adam Silver
網(wǎng)頁(yè)題目:PHP中面向?qū)ο蟮腟tatic關(guān)鍵字使用方法
轉(zhuǎn)載來(lái)源:http://muchs.cn/article14/igegde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站改版、企業(yè)建站、小程序開(kāi)發(fā)、關(guān)鍵詞優(yōu)化、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)