PHP筆記面向?qū)ο缶幊蘝第1頁
PHP筆記面向?qū)ο缶幊蘝第2頁
PHP筆記面向?qū)ο缶幊蘝第3頁
PHP筆記面向?qū)ο缶幊蘝第4頁
PHP筆記面向?qū)ο缶幊蘝第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、面向?qū)ο蟮幕静僮骰靖拍睿簩?duì)象 object,對(duì)應(yīng)現(xiàn)實(shí)邏輯中的一個(gè)實(shí)體,是一個(gè)實(shí)體在計(jì)算機(jī)語言的一個(gè)表示。是一個(gè)數(shù)據(jù),與數(shù)據(jù)的操作的集合體!對(duì)象怎么來的?通過實(shí)例化類而生成!類,class:使用計(jì)算機(jī)語言對(duì)一類事物的抽象。類似于圖紙!用于規(guī)定某類對(duì)象的結(jié)構(gòu),但是本身不是具體對(duì)象!實(shí)例化 instance,依據(jù)類的抽象定義,形成對(duì)象的操作,稱之為實(shí)例化!昆蟲:一個(gè)定義,一類動(dòng)物的抽象的概念上!基本語法聲明類:使用關(guān)鍵字 classclass class_name     /成員需要指定,該類下的實(shí)體(對(duì)象),應(yīng)該有哪些特征,哪些屬性,哪些操作!示例:聲明

2、一個(gè)學(xué)生對(duì)象,需要定義學(xué)生類:class Student     /聲明屬性    public $stu_name;    public $stu_age;    public $stu_gender;    public $stu_money;    public $stu_class;    /聲明方法  

3、60; public function baoming()         echo '我要報(bào)名<br />'    數(shù)據(jù),稱之為屬性,property,屬于對(duì)象(類)的變量操作,稱之為方法,method,屬于對(duì)象(類)的函數(shù)在聲明成員時(shí),不能直接使用變量,需要使用關(guān)鍵字來聲明實(shí)例化類得到對(duì)象,new使用 new 關(guān)鍵字即可:new 類;new Student;實(shí)例化后,典型的應(yīng)該保存在變量里!$s1 = new Stud

4、ent;$s2 = new Student;$s3 = new Student;我們只需要設(shè)計(jì)圖紙(定義類),不需要參數(shù)實(shí)例的過程一個(gè)類可以被實(shí)例化多次!操作對(duì)象使用 -> 操作符,利用對(duì)象,訪問其成員語法:對(duì)象 -> 成員;訪問屬性:    $object -> stu_name;    注意:屬性名前沒有 $s1 -> stu_name = "Bruce Lee"var_dump($s1 -> stu_na

5、me);echo '<br />'var_dump($s2 -> stu_name);對(duì)當(dāng)前某個(gè)對(duì)象的屬性的操作,只會(huì)影響當(dāng)前對(duì)象;輸出結(jié)果為:訪問方法:對(duì)象 -> 方法名();$s1 -> baoming();$s2 -> baoming();如何在方法中,訪問對(duì)象:$this$this 這個(gè),這個(gè)對(duì)象。調(diào)用該方法的對(duì)象$this 就是一個(gè)局部變量!特殊在,方法被對(duì)象調(diào)用執(zhí)行時(shí),php會(huì)自動(dòng)判斷是哪個(gè)對(duì)象調(diào)用該方法,會(huì)使用該對(duì)象為方法內(nèi)的 $this 賦值示例:class Student &#

6、160;   pulic $stu_name;    pulic $stu_money;    pulic $stu_class;    public function baoming()         echo $this -> stu_name.'我要報(bào)名<br />'   

7、  $s1 -> baoming(); /$this = $s1 $s2 -> baoming(); /$this = $s2輸出結(jié)果:Tips : public ,是一個(gè)訪問控制修飾符,適用于控制成員(屬性和方法)的訪問問題!protected , private。測試:利用面向?qū)ο缶幊痰姆椒?,?shí)現(xiàn)學(xué)生報(bào)名的業(yè)務(wù)邏輯<?php/分析實(shí)體:學(xué)生,學(xué)校,班級(jí)/定義以上三個(gè)類class Student /屬性,數(shù)據(jù)public $stu_id; /學(xué)號(hào)public $stu_name;public $stu_mone

8、y;public $stu_gender;public $class_name; /班級(jí)public $is_baoming; /是否報(bào)名/報(bào)名動(dòng)作public function baoming() echo '我是',$this -> stu_name, ',我要報(bào)名<hr />'$this -> is_baoming = 1;/繳費(fèi)動(dòng)作public function jiaofei() echo '我是',$this -> stu_name, ',我要繳費(fèi),好貴啊&

9、amp;lt;hr />'$this -> stu_money -= 6800;/選擇班級(jí)public function xuanban($t) echo '我是',$this -> stu_name, ',我選擇了',$t -> t_name,'班<hr />'$this -> class_name = ' '/學(xué)校class School public $sch_name;public $sch_address;publi

10、c $sch_money;public $stu_names; /所有已報(bào)名的學(xué)生名字public function dengji($s) echo '你好,',$s -> stu_name,',歡迎到',$this -> sch_name,'記錄你的名字<hr />'$this -> stu_names = $s -> stu_name;public function shoufei() echo '你好,你需要繳納:6800<hr /&a

11、mp;gt;'$this -> sch_money += 6800;class Team public $t_name;public $stu_count;public $stu_infos;public function luru($s) echo '謝謝選擇了',$this -> t_name;$this -> stu_count +;$this -> stu_infos = $s;/再實(shí)例化$stu = new Student;$stu -> stu_id ='1234'$stu

12、 -> stu_name = '王力宏'$stu -> stu_gender = 'male'$stu -> stu_money = 10000;$stu -> is_baoming = 0;/school$sch = new School;$sch -> sch_name = 'ginvip'$sch -> sch_money = 10000;$sch -> stu_names = array('李小龍','成龍',

13、'李連杰');/team$t = new Team;$t -> t_name = 'PHP1010'$t -> stu_count = 2;$s1 = new Student; $s2 = new Student;$t -> stu_infos = array($s1,$s2);/通過調(diào)用對(duì)象實(shí)現(xiàn)最終的邏輯$stu -> baoming();$sch -> dengji($stu);$stu -> jiaofei();$sch -> shoufei(); 

14、$stu -> xuanban($t); $t -> luru($stu);echo '<hr />' var_dump($stu);echo '<hr />'var_dump($sch); echo '<hr />' var_dump($t);   ?>表的存儲(chǔ)引擎innodb,是一種mysql支持的存儲(chǔ)引擎什么是存儲(chǔ)引擎:指的是,數(shù)據(jù)在服務(wù)器上的存儲(chǔ)

15、格式典型的mysql支持,多種引擎:不同的存儲(chǔ)引擎意味著存儲(chǔ)方式的不同:例如:innodb and myisam示例:create database engin_test;create table myisam_1 (id int) engine=myisam;查看該數(shù)據(jù)庫文件夾下存在三種格式的文件:創(chuàng)建一個(gè) innodb 引擎表:create table innodb_1 (id int) engine=innodb;此時(shí),可看到文件夾內(nèi)只多出了一個(gè)文件:myisam 下的三個(gè)文件:.frm 格式文件是結(jié)構(gòu)文件.MYD 數(shù)據(jù)data文件.MYI 索引文件innodb 下的一個(gè)文件:數(shù)據(jù)和索引

16、在哪里?所有innodb的表的數(shù)據(jù)和索引都是統(tǒng)一管理的!稱之為 innodb 數(shù)據(jù)空間:這個(gè)文件在 data 目錄下:對(duì)于mysql,常用的 innodb 和 myisam !區(qū)別:1:文件的分配不一致2:功能上講:innodb為事務(wù)安全型存儲(chǔ)引擎,支持外鏈,事務(wù)等!3:功能上:myisam對(duì)查詢有一定的額外優(yōu)化!但不支持以上第2條的功能選擇:1:先參考功能2:再參考性能(看增刪改查哪種操作多)。增加和查詢較多使用 myisam,更新和刪除較長多使用 innodb 構(gòu)造方法,_construct()在實(shí)例化類得到對(duì)象時(shí)被自動(dòng)調(diào)用!主要承擔(dān)的工作是初始化對(duì)象屬性!對(duì)象的屬性初始化典型的

17、,只要得到了對(duì)象,對(duì)象的屬性就應(yīng)該被賦于新值如果某些屬性,在對(duì)象出現(xiàn)時(shí),可以被設(shè)置為某些特定的值。就可以在聲明類時(shí),為聲明的屬性設(shè)置默認(rèn)值!示例:define('DEFAULT_MONEY',10000.00);class Student     public $stu_id;    public $stu_name;    public $stu_money = DEFAULT_MONEY;    public $st

18、u_gender;    public $class_name;    public $is_baoming = 0;此處的屬性的默認(rèn)值,類似于參數(shù),只能用已有值或者用常量作為默認(rèn)值還是需要很多屬性初始化此時(shí)應(yīng)該,將初始化的工作,聲明成一個(gè)方法,得到需要被初始化的數(shù)據(jù),在方法內(nèi),以當(dāng)前屬性進(jìn)行初始化的工作:define('DEFAULT_MONEY',10000.00);class Student     public $stu_id;    public $

19、stu_name;    public $stu_money = DEFAULT_MONEY;    public $stu_gender;    public $class_name;    public $is_baoming = 0;public function init($id,$name,$money,$gender) $this -> stu_id = $id;$this -> stu_name = $name;$this -> stu_gender = $g

20、ender;$this -> stu_money = $money;此時(shí),在實(shí)例化對(duì)象后,調(diào)用方法:$stu = new Student;$stu -> init('1234','Bruce Lee',10000,'male');$stu2 = new Student;$stu2 -> init('4321','Jet Lee',50000,'male');此時(shí)可以完成初始化!如查可以在new實(shí)例化時(shí),自動(dòng)地調(diào)用上 init 方法,則手動(dòng)步驟也可以省略PHP

21、會(huì)在實(shí)例化對(duì)象時(shí),自動(dòng)調(diào)用一個(gè)叫 _construct() 方法上面的代碼需要修改為:define('DEFAULT_MONEY',10000.00);class Student     public $stu_id;    public $stu_name;    public $stu_money = DEFAULT_MONEY;    public $stu_gender;    public $class_name;    public $is_bao

22、ming = 0;public function _construct($id,$name,$money,$gender) $this -> stu_id = $id;$this -> stu_name = $name;$this -> stu_gender = $gender;$this -> stu_money = $money;此時(shí),如果該方法需要傳遞參數(shù),則需要通過實(shí)例時(shí),在new class_name()以實(shí)參列表的形式傳遞:$stu = new Student('1234','Bruce Lee'

23、;,10000,'male');$stu2 = new Student('4321','Jet Lee',50000,'female');如果沒有定義 _construct() 可以不用執(zhí)行但是一旦定義了構(gòu)造方法,那么構(gòu)造(實(shí)例化)的過程,一定要包括 這個(gè)調(diào)用構(gòu)造方法的過程(構(gòu)造方法一定會(huì)執(zhí)行)。TIPS:有時(shí)也稱,實(shí)例化對(duì)象為構(gòu)造對(duì)象構(gòu)造方法可以自動(dòng)被調(diào)用!注意:1:構(gòu)造方法可以是一個(gè)別的名字     一個(gè)與類名相同的方法,也可能是構(gòu)造方法define('DEFAULT_MONEY

24、',10000.00);class Student     public $stu_id;    public $stu_name;    public $stu_money = DEFAULT_MONEY;    public $stu_gender;    public $class_name;    public $is_baoming = 0;public function Student($id,$name,$money,$gender) $this -> stu_id = $id;$this -> stu_name = $name;$this -> stu_gender = $gender;$this -> stu_money = $money;$stu = new Student('1234','Bruce Lee',10050,'male');此時(shí)會(huì)出現(xiàn),同名與 _construct 同時(shí)出現(xiàn)的問題,_construct會(huì)執(zhí)行如果同名的在前,_construct 在后,則會(huì)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論