1.回顧:上篇學習了,物件導向的一些基本知識,包括$this的使用
2.這篇將學習php物件導向的繼承,屬性,靜態屬性和方法
3.繼承 (extends)
(1)一個類可以在聲明用extends關鍵字繼承另一類的方法和成員 (2)不過擴充多少個類,只能繼承一個基類 (3)被繼承的方法和成員可以通過用同樣的名字重新聲明被覆蓋 (4)若父類定義方法使用了final關鍵字,則不可覆蓋 (5)可以通過parent::來訪問被覆蓋的父類方法和成員
class aclass{ //成員變數 public $var="我是成員變數"; public $t1="我是t1"; //成員函數/方法 public function displayVar(){ echo "
"; echo $this->var; echo $this->t1; } } class bclass extends aclass{ public function displayVar(){ echo "我是 bclass"; parent::displayVar(); } } $f=new bclass(); $f->displayVar(); #結果: 我是 bclass 我是成員變數我是t1
4.屬性
(1)類的成員變數為屬性/欄位/特徵。一般使用屬性。 (2)屬性聲明: public:類成員可以在任何地方被訪問; protected :可以被其所在類的子類和父類訪問(當然,該成員所在的類也可以訪問) private :能被其所在類訪問。 var :可以放在public,prorected,private前面,也可直接聲明屬性:預設是public (3)屬性變數可以進行初始化,但初始化,必須是常數 (4)在類成員方法裡,可通過 $this->屬性/方法名 來訪問屬性/方法
class cclass{ public $var1="hello"; public $var2=array(TRUE,FALSE); } #在php5.3 後,可以使用nowdoc初始化屬性 public $var3=<<<'yuan';
5.靜態屬性和方法 Static
(1)聲明類成員或方法為static,就可以不執行個體化類,而直接存取。 (2)屬性和方法預設為public (3)偽變數$this 在靜態方法中不可用 (4)靜態屬性只能初始化為一個字元值或一個常量/整型或數組 (5)用::方式調用靜態方法或屬性
#靜態屬性 class dclass{ public static $var4="我是static 屬性"; public function staticValue(){ //類本身調用靜態屬性 return self::$var4; } } class eclass extends dclass{ public function efun(){ //調用父類靜態屬性 return parent::$var4; } } echo dclass::$var4; //結果:我是static 屬性 $e=new eclass(); echo $e->staticValue(); //結果:我是static 屬性 echo $e->efun(); //結果:我是static 屬性 echo $e::$var4; //結果:我是static 屬性 #php5.3.0後的支援 $classname='dclass'; echo $classname::$var4;//結果:我是static 屬性 echo eclass::$var4; //結果:我是static 屬性 echo $e->$var4; ////結果:我是static 屬性 #靜態函數/方法 class fclass{ public static function ffun(){ //.... } }
小結:在學習過程中,發現和java,c#很多相同的知識,所有速度有些kuai!
下篇學習php類常量,自動載入類,建構函式和解構函式!
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
以上就介紹了php-物件導向(2),包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。