- <?php
- /*
- *用穿越火線快速入門php面向對象!
- *php目前已經成為國內的主流web developer的首選開發語言,其強大的面向對象容易使初學者找不到思緒,一頭霧水!
- *,借助此文希望對初學者有所幫助,假設Crossfire用php來開發.
- * 1類與對象
- */
- class Crossfire
- {
- public $Category='1,2,3'; //槍械種類,3個選擇武器類別
- public $Weapon='ak|awp|m4a1';//購買的武器,擁有的武器
- public $Flashlight=true;//是否購買閃光彈
- public $Bomb=false; //購買了閃光同等條件下不能再次購買手雷
- function attack()
- {
- //攻擊的代碼 $this->Weapon;使用武器
- }
- function repair()
- {
- //修理武器的代碼
- }
- function destroy()
- {
- //武器壞了自動銷毀代碼
- }
- /*
- * 我們把cf看成是一個類,cf里面有主武器,副武器,槍械,刀類,彈物,防彈衣,噴圖等等..
- * 以上都是類中的成員屬性,假如武器壞了,那么我們就得維修,維修就是類的成員方法!
- * 每種槍械都有不同的威力,不同的子彈數量,大小不同但是都是武器類,這是類和對象的關系(類的實例化結果就是對象)。
- *
- */
- function __construct()
- {
- //武器維修 $this->repair();
- }
- function __destruct()
- {
- //武器超過耐久自動消失 $this->destroy();
- }
- private function buy()
- {
- //購買武器私有屬性代碼
- }
- private function __get()
- {
- //調用購買的武器代碼
- }
- private function __set()
- {
- //給買的武器購買子彈數量代碼
- }
- private function __isset()
- {
- //檢查錢數是夠購買子彈數
- }
- private function __unset()
- {
- //如果中途死亡自動掉落武器
- }
- }
- class role extends Crossfire
- {
- //個人角色繼承cf的屬性,角色可以使用購買,銷毀上面的物品
- function attack()
- {
- Crossfire::attack();
- $this->Weapon='awm-a';
- //如果中途換槍,加入換槍的彈量,傷害!
- }
- final function vip()
- {
- //購買vip,final關鍵字是禁止方法和屬性繼承!vip是需要money購買,所以因此不能被繼承!
- }
- public static $awm=100;//awm 傷害是固定的所以用靜態
- public static function awm()
- {
- self::$awm;//awm攻擊代碼,self調用靜態. 方法的重載
- }
- public function __toString()
- {
- return $this->repair(); //自動返回武器維修的費用
- }
- }
- interface map
- {
- //地圖代碼,一個子類只能繼承一次父類,地圖是每個玩家都要用的,顯而意見繼承是不能夠滿足需求的,接口為我們解決瓶頸!
- public function map1()
- {
- //黑色城鎮
- }
- function map2()
- {
- //運輸船
- }
- }
- interface vipmap extends map
- {
- //如果是會員就顯示會員地圖,繼承接口總地圖
- function _vipmap()
- {
- //vip建圖顏色先是紅色
- }
- function _vipmap1()
- {
- }
- }
- $cf=new Crossfire();
- echo $cf->Weapon;//輸出擁有的武器!
- /*
- * $對象名稱= new 類名稱();
- 創建新類我們使用new,我們新創建了一個cf類,$cb就是Crossfire的對象!
- &nb sp; 多態的應用,抽象類沒有講,當然一個完整的游戲是不可能從此簡單的,只是做個比喻!
- */
- $cf2=clone $cf; //克隆操作表示所有玩家都使用此類!
- ?>
不錯哦,我正在學php,也在玩穿越火線啦~~~~嘻嘻