![4-4-2php-class類簡單用法總結(jié)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/7/629ad98e-b73c-4ab8-9eb3-34af7cbef0a0/629ad98e-b73c-4ab8-9eb3-34af7cbef0a01.gif)
![4-4-2php-class類簡單用法總結(jié)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/7/629ad98e-b73c-4ab8-9eb3-34af7cbef0a0/629ad98e-b73c-4ab8-9eb3-34af7cbef0a02.gif)
![4-4-2php-class類簡單用法總結(jié)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/7/629ad98e-b73c-4ab8-9eb3-34af7cbef0a0/629ad98e-b73c-4ab8-9eb3-34af7cbef0a03.gif)
![4-4-2php-class類簡單用法總結(jié)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/7/629ad98e-b73c-4ab8-9eb3-34af7cbef0a0/629ad98e-b73c-4ab8-9eb3-34af7cbef0a04.gif)
![4-4-2php-class類簡單用法總結(jié)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/7/629ad98e-b73c-4ab8-9eb3-34af7cbef0a0/629ad98e-b73c-4ab8-9eb3-34af7cbef0a05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一:結(jié)構(gòu)和調(diào)用 (實(shí)例化 ):class className ,調(diào)用: $obj = new className(); 當(dāng)類有構(gòu)造函數(shù)時(shí), 還應(yīng)傳入?yún)?shù)。 如$obj = new className($v,$v2 );二:構(gòu)造函數(shù)和析構(gòu)函數(shù):1 、構(gòu)造函數(shù)用于初始化:使用 _construct() ,可帶參數(shù)。2、但析構(gòu)函數(shù)不能帶參數(shù)(用于在銷去一個(gè)類之前執(zhí)行一些操作或功能)。析構(gòu)函數(shù)用_destruct() 做名稱。在腳本執(zhí)行結(jié)束時(shí),會銷掉內(nèi)存中的對象,因此可不用析造函數(shù),但有些 比如 COOKIE 等,就應(yīng)當(dāng)要用此函數(shù)銷掉。知識點(diǎn):在 PHP4 中也提供了構(gòu)造函數(shù),但使用的是與類同名的類方
2、法,在 PHP5 仍能兼容這 種做法,當(dāng)一個(gè)類中沒有包含_construct 時(shí),會查找與類同名的方法,如果找到,就認(rèn)為是構(gòu)造函數(shù),如下:class test var $b;function test() $this-b=5; function addab($c) return $this-b+$c; $a = new test(); echo $a-addab(4); / 返回 93 、PHP 不會自動(dòng)調(diào)用父類的構(gòu)造函數(shù) (不支持構(gòu)造函數(shù)重載 ),必須使用 parent 關(guān)鍵字顯式地調(diào) 用。class employeefunction _construct().class Manager e
3、xtents Employeefunction _construct() parent:_construct();echo 這個(gè)子類的父類構(gòu)造函數(shù)調(diào)用了! ;當(dāng)然也可以調(diào)用與該實(shí)例沒有任何關(guān)系的其它類的構(gòu)造函數(shù)。只需在 _construct() 前加上類名即可。如:otherClassName:_construct();類的主家庭成員:屬性、方法、常量、靜態(tài)成員 三、類的屬性: 有兩種方法對類的屬性賦值或取值。1 、使用公共作用域 public 關(guān)鍵詞。2、使用 _set() 和 _get() 來分別賦值和取值,前者稱為設(shè)置方法(setter )或修改方法 (mutator) ,后者稱為訪問方
4、法 (accessor) 或獲取方法 (getter) 。建議使用這種方法:優(yōu)點(diǎn):A、可在 _set ()統(tǒng)一進(jìn)行數(shù)據(jù)驗(yàn)證 B、便于統(tǒng)一管理屬性。第一如下_set() 和 _get() 只對私有屬性起作用,對于用 public 定義的屬性, 它們兩個(gè)都懶理搭理,衛(wèi)浴潔具 ,不銹鋼電水壺 class testprotected $a=9,$b=2,$c;public $d;function _set($n,$v) $this-$n = $v+2; function _get($name) return $this-$name+2; $a = new test();$a-b =5; echo “
5、”ec;ho $a-b;實(shí)例只對 $a,$b,$c 的設(shè)置會經(jīng)過 _set 和 _get 過濾與返回, 對于 $d,就不會起作用。 如 $a-d=5, 再返回還是 5 。第二: _set($n,$v) 要帶兩個(gè)參數(shù)。而 _get($n) 只能有一個(gè)參數(shù)。實(shí)例:class testprivate $a=5,$b=6,$c;function _set($n,$v)if($n= a&$n0)$this-$n = $v;else$this-$n = $v+2;function _get($name)return $this-$name; / 如果改為 return $this-$name + $thi
6、s-addab();如調(diào)用 a 的值,實(shí)際返回的是 a+a+b 的值。默認(rèn)為 5+5+6=16 。function addab()return $this-a + $this-b;$e=new test();$e-a = 11; / 注意寫法:類的內(nèi)部用 $this-$n 即變量的寫法,但外部實(shí)例要用 $e-a 的方式。 $e-b = 12; /get 14$e-k = 22;類的屬性可自由擴(kuò)展,如上例的 k,不管是否用 _set ,當(dāng)一個(gè)實(shí)例建立起來后,可以用 $e-newProperty = xx; 直接來創(chuàng)造一個(gè)屬性,但不建議這么做。四、類的方法: 理解成類當(dāng)中的函數(shù)即可。調(diào)用:1、內(nèi)部
7、調(diào)用:可使用 $this-Fanname(); 或 $this-addab() 或 test:addab();2、實(shí)例化調(diào)用時(shí), 用 $e-addab(); 即可。 對于在該方法中沒有使用 $this 關(guān)鍵字的, 如上例中的: function addab() return $this-a+$this-b; 改為: function addab() return 25;那在在外部實(shí)例調(diào)用該方法,也可用“ $e:addab();或 “test:addab(); ”衛(wèi)浴潔具 ,不銹鋼電水壺 五、類的常量: 如果類的屬性理解成類中的變量,那么類的常量和變量是不一樣的,其定義方法為: class te
8、stprivate $a;const PI = 3.14 ;/在類中調(diào)用上面的常量用兩種方法,“ $this:PI 或”“,類名 :PI ”這,里就是 test:PI, 如下:function getvalue()return $this-a * $this:PI; / 或 $this-a * test:PI, 用 this 關(guān)鍵字或類名均可,但都要用雙冒號。$e= new test();$e-PI =5; /注意,這里用 -只是創(chuàng)造了一個(gè)也是名為 PI 的屬性,而不是改變類中的 PI 常量 的值。echo $e:PI; / 這個(gè)才是調(diào)用類的常量。常量只能用雙冒號 : 來調(diào)用。并且不能更改其值
9、。 在類外部實(shí)例化后調(diào)用類常量同樣也有兩種方法。方法為: “ $e:PI ”或 “ test:PI ,共”同點(diǎn)是都要用冒號, 不同點(diǎn)是外部不能用 this 關(guān)鍵字, 只能用實(shí)例名, 但類名 :PI 是通用的。六、類的靜態(tài)成員(靜態(tài)屬性或靜態(tài)方法): 如果需要?jiǎng)?chuàng)建供所有類的實(shí)例共享的字段或方法。就得用靜態(tài)成員。有兩個(gè)特征: 1、靜態(tài)成員是共產(chǎn)主義者,它讓腳本上的所有該類的實(shí)例調(diào)用,但不能借助類的特定實(shí)例名調(diào) 用,而是在類的外部,統(tǒng)一使用 “類名 :$成員名 ”的方式調(diào)用。而類的內(nèi)部則統(tǒng)一使用“self:$成員名”來調(diào)用。2、當(dāng)每一次新創(chuàng)建實(shí)例時(shí),靜態(tài)成員會從上次創(chuàng)建的實(shí)例最后值開始重新計(jì)算,而不
10、是類中初 始的值開始計(jì)算。3 、對于用 public 定義的靜態(tài)成員,可以在外部更改它的值。 private 等則不行。 class test public static $v = 0;function _construct() self:$v+; static function getV() return self:$v; $a = new test();echo test:getV(); / 返回 1$b = new test();echo test:getV(); / 返回 2test:$v=8; / 由于 public 定義的成員,改變靜態(tài)成員的值。$c = new test();ec
11、ho test:getV(); / 返回 9七、關(guān)鍵字:(一) this 關(guān)鍵字:用于類的內(nèi)部指代類的本身。來訪問屬性或方法或常量,如 $this- 屬性名或 方法名。 $this: 常量名。 this 還可以用在該類的子類中,來指代本身的屬性或方法。(二) 雙冒號 “:關(guān)”鍵字:用于調(diào)用常量、靜態(tài)成員。衛(wèi)浴潔具 ,不銹鋼電水壺 (三) self 關(guān)鍵字 :在類的內(nèi)部與雙冒號配合調(diào)用靜態(tài)成員,如self:$staticVar. ,在類的內(nèi)部,不能用 $this 來調(diào)用靜態(tài)成員。(四) _toString() :在類中使用 _toString() ,用于將類轉(zhuǎn)成字串并打印類,用處不大:如: cl
12、ass testpublic $p;public function _toString()return var_export($this,TRUE); $a=new test();echo $a; / 輸出: test:_set_state(array(p = N,UL或L,寫 )成: echo $a-_toString();(五) _clone() :當(dāng)克隆對象時(shí),這個(gè)關(guān)鍵字才會發(fā)生作用,用于更改克隆時(shí)某些值。(六) _call() :方法重載,參下面示例:class cBfunction _call($method,$n)if($method= showVarType )if(is_num
13、eric($n0)/ 不能用 $n 。要用 $n0;$this-displayNum();else if (is_array($n0)$this-displayArr();else$this-displayOther();function displayNum() echo 是數(shù)字 ! ;function displayArr() echo 是數(shù)組 ! ;function displayOther() echo 是數(shù)組也不是數(shù)字 ! ;$x= a;$y=array( a ,b );$b=new cB;$b-showVarType($x); / 不是數(shù)組也不是數(shù)字$b-showVarType($
14、y); / 這是數(shù)組 注意,不能在類中定義 showVarType ()方法,否則代碼不能用。(七) extends: 繼承 : 如 class aclass b extends a 類 b 繼承了類 a附:記憶:以后統(tǒng)一在調(diào)用方法或?qū)傩詴r(shí)用“- “調(diào),用常量則用雙冒號 “:,”不會搞暈。八、方法和屬性的作用域:共有 6 種: public( 默認(rèn),可省略,也等同于 php6 的 var 聲明 ),private (私有,也不能由子類使 用), protected( 私有,但可由子類使用 ) ,abstract( 抽象,參下文 ), final( 阻止在子類中覆蓋 衛(wèi)浴潔具 ,不銹鋼電水壺 f
15、inal class test final function fun(),但不也稱重載,阻止被繼承,用于修飾類名及方法,如能用于屬性 ),static( 靜態(tài) )九:抽象類和抽象方法( abstract 注意:沒有所謂抽象屬性) : 抽象可以理解成父類為子類定義了一個(gè)模板或基類。作用域 abstract 只在父類中聲明,但在子 類中實(shí)現(xiàn)。注意事項(xiàng):1、抽象類不能被實(shí)例化,只能被子類(具體類)繼承后實(shí)現(xiàn)。2、抽象類必須在其子類中實(shí)現(xiàn)該抽象類的所有抽象方法。否則會出錯(cuò)。3 、在抽象方法中,只是聲明,但不能具體實(shí)現(xiàn):如abstract function gettow() return $this-p
16、; 是錯(cuò)的,只能聲明這個(gè)方法: abstract function gettow(); (連方括號 都不要出現(xiàn)) ,抽象方法和 抽象類主要用于復(fù)雜的類層次關(guān)系中。 該層次關(guān)系需要確保每一個(gè)子類都包含并重載了某些特定 的方法。這也可以通過接口實(shí)現(xiàn)4、屬性不能被命名為抽象屬性,如abstract $p = 5 是錯(cuò)的。5、只有聲明為抽象的類可以聲明抽象方法,但如果方法聲明為抽象,就不能具體實(shí)現(xiàn)。如:abstract class Employeeabstract function a( );abstract function b( ); 以后再對這個(gè)父類擴(kuò)展,組成各種子類(如經(jīng)理,員工,出納)。6、
17、抽象類中,如果要實(shí)現(xiàn)具體的方法,不能聲明為抽象。這樣可能實(shí)際意義更大。可以把幾個(gè) 類庫中共同的部分提取到抽象類中,其它的類繼承抽象類即可。如下:abstract class BaseShopConst TAX=0.06; / 在抽象類中定義常量public function buy($gid) / 如果定義為抽象方法 abstract function buy ()就不能在這里實(shí)現(xiàn)主體。echo( 你購買了 ID 為 : .$gid的. 商品 );public function sell($gid) echo( 你賣了 ID 為 : .$gid的. 商品 );public function v
18、iew($gid) echo( 你查看了 ID 為 : .$gid的. 商品 );class BallShop extends BaseShopvar $itme_id = null;public function _construct()$this-itme_id = 2314;public function open()$this-sell($this-itme_id);衛(wèi)浴潔具 ,不銹鋼電水壺 public function getTax()echo printf( 稅率是 %d% 。 ,$this:TAX*100);$s = new BallShop;$s-open(); / 你賣了
19、ID 為 :2314 的商品$shop-getTax();十:類型提示: 注意,類型提示功能只能用于參數(shù)為對象的提示,而無法用于為整數(shù),字串,浮點(diǎn)等類型提示。 有些類的方法需要傳入的參數(shù)為所期望的對象類型, 可以用下面的方法達(dá)到強(qiáng)制實(shí)施此替則。 要 達(dá)到類型提示,只要在方法的對象型參數(shù)前加一個(gè)已存在的類的名稱,如: function funname(OtherClassName $otherclassINSName,$c .,) 注意, OtherClassName 必須是存在的類。如下:class em var $k=56; class testfunction _construct() e
20、cho $this-addab(new em(),2);function addab(em $j,$c)/ 這個(gè)方法,即可以在內(nèi)部調(diào)用,也可以在外部調(diào)用。只要作用域許可。 return $j-k+$c; $a = new test();$b = new em();echo $a-addab($b,2); / 或 $a-addab(new em(),2);十一、類的管理:1、 instanceof 關(guān)鍵字:用于分析一個(gè)對象是否是某一個(gè)類的實(shí)例或子類或是實(shí)現(xiàn)了某個(gè)特定的 接口:如下例,但要注意: 類名沒有任何引號等定界符,否則會出錯(cuò)。如test 不能用 test class test2 class
21、 testclass testChilern Extends test$a = new test2();$m = new test();$i = ($m instanceof test);if($i)echo是$類m test 的實(shí)例! ; / get this valueswitch ($a instanceof test)case true :echo YES ;break;case false :echo No /g;et this valuebreak;衛(wèi)浴潔具 ,不銹鋼電水壺 $d=new testChilern();if($d instanceof test)echo是類 t$ed
22、st 的子類! ; / get tsh ivalue2、確定類是否存在: boolean class_exists(string class_name): class_exists( test );3 、返回類名: string get_class(object) ,成功時(shí)返回實(shí)例的類名,失敗則返回 FALSE : $a = new test2(); echo get_class($a);/ 返回 test24、了解類的公用屬性: array get_class_vars( className 返回) ,關(guān)鍵數(shù)組:包含所有定義的public 屬性名及其相應(yīng)的值。這個(gè)函數(shù)不能用實(shí)例名做變量5、返
23、回類方法: get_class_methods( test 或);: / get_class_methods($a); 可用實(shí)例名做參數(shù), 返回包括構(gòu)造函數(shù)在內(nèi)的所有非私有方法。6、print_r(get_declared_classes() 了解當(dāng)前 PHP 版本中所有的類名。 PHP5 有 149 個(gè)。7 、get_object_vars($a) 返回實(shí)例中所有公用的屬性及其值的關(guān)聯(lián)數(shù)組。 注意它和 get_class_vars() 的區(qū)別:/* (1) get_object_vars($a) 是用實(shí)例名做參數(shù),而 get_class_vars( tes是t 用類)名做參數(shù)。* (2) g
24、et_object_vars($a) 獲得的屬性值是實(shí)例運(yùn)行后的值,而 get_class_vars( tes獲t 得的)屬性 值是類中的初始定義。* (3) 兩者均返回關(guān)聯(lián)數(shù)組, 且均對未賦值的屬性返回 NULL 的值。如類 test 中有定義了 public $q; 則返回 Array ( v = 5 q=) ,*/8、返回父類的名稱: get_parent_class($b);/ 或 get_parent_class( test2 返回); test9 、確定接口是否存在: boolean interface_exists($string interface,boolean autolo
25、ad)10、確定對象類型: boolean is_a($obj, classNam)e,當(dāng) $obj 屬于 CLASSNAME 類時(shí),或?qū)?于其子類時(shí),返回 TRUE ,如果 $obj 與 class 類型無關(guān)則返回 FALSE 。如: is_a($a, test )11、確定是否是某類的子對象: 當(dāng) $b 是繼承自 TEST 類時(shí), 返回 TRUE ,否則 FALSE 。boolean is_subclass_of($b, test );12、確定類或?qū)嵗校欠翊嬖谀撤椒?。method_exists($a, getv 或)用 /method_exists( test ,,ge此tv函數(shù)適)
26、用于非 public 定義的作用域的方法。 以上函數(shù)實(shí)例: class test public $v=2;private $c=5;function _construct()$this-v=5;private function getv()return $this-v;class test2 extends test$a=new test();$b=new test2();print_r( get_class_methods( tes或t :p)r)i;n /t/_r( get_class_methods($a);均返回: Array ( 0= _construct 1 = getv ) ec
27、ho ;print_r( get_class_vars( te返st回: )A; r/r/ay ( v = 2 ) ,和上面不一樣,不能用衛(wèi)浴潔具 ,不銹鋼電水壺 print_r( get_class_methods($a);echo ;echo get_parent_class($b);/ 或 get_parent_class( test2 返回); testecho ;echo is_a($b, test 返回);/1echo ;if(is_subclass_of( test2 , t是es子t 類!)ech;o 或 / (is_subclass_of($b, te返st回1),), 當(dāng)參
28、數(shù) 1為 $a 時(shí)則返回 false, echo ;echo method_exists($a, getv或用) m/ ethod_exists( test ,返ge回tv 1,本函)數(shù)也適用于用private 等定義域的方法。十一、自動(dòng)加載類庫文件: 當(dāng)類多了以后,比如要在一個(gè)文件中載入 3 個(gè)類庫文件: a.class.php,b.class.php,c.class.php 要用三個(gè) require_once( classes/a.class.php);require_once( classes/b.class.php); require_once( classes/c.class.php
29、);可以用 PHP5 自動(dòng)加載的功能來處理:在全局應(yīng)用配置文件中,定義一個(gè)特殊的函數(shù)_autoload($class) 函數(shù) ( _autoload 并不是一個(gè)類的方法, 只是單獨(dú)的函數(shù), 和類沒有關(guān)系) : function _autoload($class)require_once( “ classes/$class)該函數(shù)放哪沒有關(guān)系,在創(chuàng)建類實(shí)例時(shí),也不必去調(diào)用這個(gè) autoload 函數(shù)。 PHP 會自動(dòng)完成。 但務(wù)必注意一點(diǎn): “在調(diào)用頁面上創(chuàng)建實(shí)例所使用的類名稱 ”、和“被調(diào)用的文件名 ”、以及 “該文件 中的類的名稱 ”3個(gè)必須是一樣的。這樣就不需要去調(diào)用 _autoload(
30、); 如果不一樣則必須單獨(dú)調(diào) 用 _autoload( c并);給它一個(gè)文件名前綴。如:c.class.php 文件的代碼是:這里代碼的類名稱是 c,而文件名也是 c,現(xiàn)在要在 index.php 調(diào)用:m;?此時(shí) PHP 會自動(dòng)調(diào)用根目錄下的 c.class.php 中的類 C 。但如果 c.class.php 中的代碼是:而調(diào)用頁 index.php 代碼是:m;?會出錯(cuò),提示找不到 mm.class.php 文件。這時(shí)可以加一行 _autoload( c但);這樣就達(dá)不到簡化 代碼的目的。類的家族化擴(kuò)展:類的高級功能:一、對象克?。寒?dāng)克隆一個(gè)對象的實(shí)例時(shí),其屬性初始值繼承了被克隆對象的當(dāng)
31、前值。class testpublic $p=5;function _clone()/ 只在克隆發(fā)生時(shí)起作用。用于改變在克隆時(shí)某些值$this-p=15;$a=new test();echo $a-p;$a-p=8; / 如果沒有 _clone() 方法影響, $b 的 P 值將為 8$b = clone $a;echo $b-p; /15二、對象繼承:沒有被聲明為 final 的類可以被繼承,沒有被 final 和 private 界定的方法也可以繼承,沒有被 private 界定的屬性也可以繼承。當(dāng)子類繼承了父類或超類后,可以直接使用父類或超類(祖父 類以及祖父的祖父)的所有允許的方法,屬
32、性。關(guān)鍵:理解構(gòu)造函數(shù)和重載在繼承中的特性!(一) 構(gòu)造函數(shù)在繼承中的特性:1、當(dāng)父類有構(gòu)造函數(shù)而子類沒有:則子類會在實(shí)例化時(shí)會自動(dòng)執(zhí)行父類的構(gòu)造函數(shù)。這時(shí)如果 要?jiǎng)?chuàng)建子類的實(shí)例,需要引入父類構(gòu)造函數(shù)中所需的參數(shù),否則出錯(cuò)。即使是 “子類的子類 ”如果 沒有構(gòu)造函數(shù),也要在創(chuàng)建實(shí)例時(shí)輸入其父類的父類的構(gòu)造函數(shù)所需參數(shù)。 PHP 會從實(shí)例所在 的子類會向上搜索合造的構(gòu)造函數(shù),一旦找到就停止,使用該構(gòu)造函數(shù)。 而不會再向上搜索, 因 此:子類本身如果沒有構(gòu)造函數(shù),則以其最靠近的一個(gè)超類并且有構(gòu)造函數(shù)的為準(zhǔn)。class cApublic $name,$age;衛(wèi)浴潔具 ,不銹鋼電水壺 functio
33、n _construct($n) $this-name = $n;$this-age = 25;function _set($n,$v) $this-$n = $v;function _get($n) return $this-$n;class cB extends cAfunction funB1() echo Class cB execute success! ;class cC extends cB function funC1() echo Class cC FunC1! ; $b=new cB( Jack );$b- name= John ;echo “ $-bname : $b-a
34、ge ”;$b-funB1();$c=new cC(); / 這里會出錯(cuò),由于 cB 也沒有構(gòu)造函數(shù),因此再向上以 cA 為準(zhǔn),需要一個(gè)參數(shù)。 改為 $c=new cC(David )即; 可。echo $c-name(); /David2、當(dāng)子類也有構(gòu)造函數(shù)時(shí):這時(shí),不管父類是否有構(gòu)造函數(shù),都會執(zhí)行子類自己的構(gòu)造函數(shù)。 如上:class cB extends cAfunction _construct() echo this is Class cB s _construct!;function funB1() echo Class cB execute success!;現(xiàn)在類 CB 有自己
35、的構(gòu)造函數(shù)時(shí),這時(shí)創(chuàng)建實(shí)例$b=new cB(Jack )參; 數(shù) JACK 不會起作用,因?yàn)楦割?CA 的構(gòu)造函數(shù)沒有得到執(zhí)行。因此 $b-name 和 $-age 就不會初始化值。需要另外賦 值$b- name=Jack ,$b-age=25;如果這時(shí)要執(zhí)行父類 CA 的構(gòu)造函數(shù),可以這樣:function _construct($n) parent:_construct($n);/ 或: cA:_construct($n);echo this is Class cB s _construct!;由于 parent:_construct($n);只會向上搜索父類的構(gòu)造函數(shù),一找到就停止且執(zhí)
36、行當(dāng)前找到的衛(wèi)浴潔具 ,不銹鋼電水壺 構(gòu)造函數(shù),因此在上面例子中,如果parent:_construct($n) 是用在最后一層的類 cC 中,并且類 CB,CA 都有構(gòu)造函數(shù),那么 cC 的實(shí)例只會執(zhí)行 cB 的構(gòu)造函數(shù)。不會執(zhí)行 cA 。這時(shí),如果 CC 的實(shí)例想都調(diào)用 CA 和 CB 的構(gòu)造函數(shù),有兩種方法:A、在 CB 中也加入 parent:_construct($n)B、在 CC 中把構(gòu)造函數(shù)改為: function _construct($n) cA:_construct($n);/ 即:類名 :構(gòu)造函數(shù)。cB:_construct();echo this is Class cB
37、 s _construct!;(二) 在子類中調(diào)用父類的屬性或方法:1 、調(diào)用父類方法:在子類中調(diào)用父類的方法,有 3 種方法: $this-ParentFunction(); 或 父類名 :ParentFunction(); 或 parent:parentFun();2 、調(diào)用父類屬性:只能用 $this-ParentProperty;(三) 重載:在子類中, 可以定義與父類相同屬性或方法, 改變父類該屬性或方法的值或操作, 稱做重載。 如: calss ParClass function pfun() .class ChildrenClass extends ParClassfunction pfun() / 重載了.父類的 pfun 的方法。 在子類中重載后,優(yōu)先執(zhí)行自己重載后的新定義的方法或?qū)傩?。也可以在子類中?parent:parentFun(); 調(diào)用父類的方法,但所得到的值是子類自己輸入的參數(shù) 運(yùn)算值。而不是該方法在父類中運(yùn)算的值。三、接口:接口: interface ,可以理解成一組功能的共同規(guī)范,最大意義可能就是在多人協(xié)作時(shí),為各自的 開發(fā)規(guī)定一個(gè)共同的方法名稱。和抽象類中的抽象方法一樣: 1、不能在接口中對方法具體實(shí)現(xiàn)進(jìn)行定義。而是由具
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 杭州職業(yè)技術(shù)學(xué)院《工程力學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- AI助力金融行業(yè)提升效率與創(chuàng)新路徑
- 河南科技大學(xué)《云南少數(shù)民族文化創(chuàng)意設(shè)計(jì)實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西演藝職業(yè)學(xué)院《電氣工程制圖與CAD》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東工貿(mào)職業(yè)技術(shù)學(xué)院《漢字文化研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 唐山海運(yùn)職業(yè)學(xué)院《單片機(jī)綜合實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古科技大學(xué)《電機(jī)與控制技術(shù)B》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年02月安徽2024年安徽潁泉農(nóng)村商業(yè)銀行社會招考20人筆試歷年參考題庫附帶答案詳解
- 湖南人文科技學(xué)院《醫(yī)學(xué)綜合設(shè)計(jì)性》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東交通職業(yè)技術(shù)學(xué)院《計(jì)量經(jīng)濟(jì)學(xué)與統(tǒng)計(jì)軟件應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 部編版小學(xué)語文二年級下冊電子課文《小馬過河》
- 《醫(yī)療機(jī)構(gòu)工作人員廉潔從業(yè)九項(xiàng)準(zhǔn)則》專題解讀
- 愛車講堂 課件
- 成立商會的可行性報(bào)告5則范文
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院《常微分方程》2023-2024學(xué)年第一學(xué)期期末試卷
- 游戲賬號借用合同模板
- 2022年中考英語語法-專題練習(xí)-名詞(含答案)
- 2011年公務(wù)員國考《申論》真題卷及答案(地市級)
- 《籃球體前變向運(yùn)球技術(shù)》教案(共三篇)
- 多元化評價(jià)體系構(gòu)建
- 部編版六年級下冊道德與法治全冊教案教學(xué)設(shè)計(jì)
評論
0/150
提交評論