PHP基礎(chǔ)知識(shí)點(diǎn)教學(xué)內(nèi)容_第1頁
PHP基礎(chǔ)知識(shí)點(diǎn)教學(xué)內(nèi)容_第2頁
PHP基礎(chǔ)知識(shí)點(diǎn)教學(xué)內(nèi)容_第3頁
PHP基礎(chǔ)知識(shí)點(diǎn)教學(xué)內(nèi)容_第4頁
PHP基礎(chǔ)知識(shí)點(diǎn)教學(xué)內(nèi)容_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Good is good, but better carries it.精益求精,善益求善。PHP基礎(chǔ)知識(shí)點(diǎn)一、LAMP網(wǎng)站介紹:1.開發(fā)語言結(jié)構(gòu)B/S結(jié)構(gòu)和C/S結(jié)構(gòu)PHP屬于B/S結(jié)構(gòu)我們將來的工作:基于PHP的WEB開發(fā)工程師,屬于B/S結(jié)構(gòu)三、HTTP協(xié)議:HTTP協(xié)議是超文本傳輸協(xié)議。默認(rèn)端口是80,一般請(qǐng)求方式有GET和POST,特點(diǎn)是無狀態(tài)。PHP是超文本預(yù)處理器(動(dòng)態(tài)生成超文本的)HTML是就是超文本標(biāo)記語言。URL是統(tǒng)一資源定位符,格式:協(xié)議名:/主機(jī)名:端口/目錄./文件名下面就是一個(gè)URL地址(網(wǎng)址)/shop/home/index.php四、動(dòng)態(tài)網(wǎng)址開發(fā)所需的WEB構(gòu)件

2、:1.瀏覽器:IE、谷歌、火狐。2.超文本標(biāo)記語言HTML3.CSS樣式表4.客戶端腳本程序:JavaScript5.WEB服務(wù)器:apache6.服務(wù)器端腳本程序:PHP,ASP.netJavaEE7.數(shù)據(jù)庫:MySQL五、網(wǎng)站開發(fā)平臺(tái)介紹1.ASP.NET使用使用C#語言,基于微軟平臺(tái)的開發(fā)特點(diǎn):開發(fā)速度快,容易上手,開發(fā)成本低,移植性差(僅限Windows系統(tǒng)),相對(duì)穩(wěn)定性差。2.JavaEE是使用Java語言加框架開發(fā),屬于Sun的特點(diǎn):開發(fā)速度慢,相對(duì)復(fù)雜,成本高,但是可移植,相對(duì)安全。運(yùn)行穩(wěn)定。3.LAMP使用php語言開發(fā)特點(diǎn):開發(fā)速度開,相對(duì)簡(jiǎn)單,成本低,可移植,相對(duì)安全。維護(hù)

3、方便。第一單元【php入門】a、什么是phpb、php的優(yōu)勢(shì)是什么c、php能做什么d、php的歷史f、php的簡(jiǎn)單語法規(guī)則(大小寫、注釋、空白和換行、分號(hào)使用)g、程序架構(gòu)b/s(browser/server)、c/s(client/server)h、開發(fā)環(huán)境搭建1.php簡(jiǎn)單概述2.b/s與c/s簡(jiǎn)單比較,區(qū)別:-a、運(yùn)行環(huán)境不同(廣域網(wǎng)、局域網(wǎng))-b、安全級(jí)別不同(低/高)-c、用戶群不同(全部用戶/局部用戶)-d、系統(tǒng)升級(jí)不同(無縫升級(jí)/整體升級(jí))-e、用戶開啟不同(瀏覽器/客戶端軟件)-f、側(cè)重點(diǎn)不同(信息流/用戶體驗(yàn))比如:b/s就是網(wǎng)上的微博、博客;c/s就是在網(wǎng)吧打的網(wǎng)絡(luò)游戲(

4、奇跡、傳奇等)3.php是什么:運(yùn)行在服務(wù)器端的腳本語言-HypertextPreprocessor-personalhomepage4.php語言能做什么-圖形化用戶界面程序(開心網(wǎng)、趕集網(wǎng)、sina等等phpcms、dedecms、帝國(guó)cms、drupalcms)-服務(wù)器端運(yùn)行腳本程序5.簡(jiǎn)單特點(diǎn):-a、大小寫(自己定義的類名和函數(shù)名是不區(qū)分的)-b、分號(hào)-c、程序的注釋-d、空白和換行6.wamp集成環(huán)境安裝7.php的開發(fā)框架有:yii、cakephp、CodeIgniter、zendframework等php的cms有:phpcms、dedecms、帝國(guó)、drupal、joomla等

5、*第二單元【php語法基礎(chǔ)】1.變量的定義-美元符號(hào)$加上變量名稱,例如$str。-變量名稱命名規(guī)則:是由字母和下劃線開始,后接任意數(shù)量的字母、數(shù)字、下劃線2.可變變量例如:$a=hello;則$a和$hello同理3.數(shù)據(jù)類型:四個(gè)標(biāo)量類型(int,string,float,boolean)兩個(gè)復(fù)合類型(array,object)兩個(gè)資源類型(resource,NULL)4.什么是常量常量的值是固定的,不能隨便變化的,例如圓周率、系統(tǒng)里邊的用戶名、密碼等等。5.常量名的命名規(guī)則沒有美元符號(hào)$,名字的命名規(guī)則和變量名一樣,按照習(xí)慣都是大寫的6.常量的定義define(CIRCLE,3.1415

6、9);defined(CIRCLE);/判斷是否有定義常量CIRCLE7.常量的使用,直接引用例如可以這樣使用上邊的變量echoCIRCLE;還可以使用php系統(tǒng)里邊自帶的常量例如echo_FILE_;echo_LINE_;8.變量和常量的區(qū)別a.常量前面沒有美元符號(hào)($);b.常量只能用define()函數(shù)定義,而不能通過賦值語句;c.常量可以不用理會(huì)變量范圍的規(guī)則而在任何地方定義和訪問;d.常量一旦定義就不能被重新定義或者取消定義;e.常量的值只能是標(biāo)量類型。9.php外部變量$_POST、$_GET;10.自定義函數(shù)11.變量的能見度12.函數(shù)參數(shù)傳遞(兩種)13.代碼重用(includ

7、e,require,include_once,require_once)14.遞歸調(diào)用15.運(yùn)算符(算術(shù)、遞增/遞減、比較、邏輯、位、其他)特殊運(yùn)算符.是連接符.=是連接賦值屏蔽錯(cuò)誤信息HYPERLINKmailto:$link=mySQl_connect$link=mySQl_connect(主機(jī),用戶名,密碼)?:三目運(yùn)算符16.流程控制(順序、選擇、循環(huán))作業(yè),自己寫一個(gè)函數(shù),輸入年份判斷出當(dāng)前輸入?yún)?shù)是否是閏年(能被4整除并且不能被100整除,或者能被400整除)*第三單元【數(shù)組】定義:具有相同類型和名稱的變量的集合。1.數(shù)組按照鍵名分索引和關(guān)聯(lián)2.數(shù)組賦值方式(一維、二維)3.遍歷數(shù)

8、組方式:遍歷定義:沿著一定的路線,依次對(duì)數(shù)組里邊的每個(gè)元素做一次且僅做一次訪問。foreach(數(shù)組as鍵名=值名)foreach(數(shù)組as值名)while(list(鍵名,值名)=each(數(shù)組)while(list(,值名)=each(數(shù)組)自學(xué)通過for方法遍歷數(shù)組$_arr=a;$_arr=b;$_arr=c;$_arr=d;for($i=0;$i01=12=23=32.在上一題的基礎(chǔ)上寫一個(gè)函數(shù),要求輸入兩個(gè)正整數(shù)m,n,經(jīng)過處理返回一個(gè)索引數(shù)組,要求數(shù)組索引從n開始遞增,數(shù)組值從1開始一直遞增到m,例如輸入?yún)?shù)4,100則返回:Array100=0101=1102=2103=3*第

9、四單元【字符串】字符串:由0個(gè)或多個(gè)字符組成的有限序列。1.字符串的三種定義方式(單引號(hào)、雙引號(hào)、定界符)單引號(hào)定義(轉(zhuǎn)義和)雙引號(hào)定義(轉(zhuǎn)義nrt$)定界符方法eof2.函數(shù)部分explode/implodesubstr()*str_replace/trim/ltrim/rtrimstrchr(str,search)獲得指定字符串最開始出現(xiàn)到字符串最后的內(nèi)容strrchr(str,search)獲得指定字符串最后出現(xiàn)到字符串最后的內(nèi)容strpos(str,search)獲得指定字符串最開始出現(xiàn)的位置strrpos(str,search)獲得指定字符串最后出現(xiàn)的位置ucfirst(str)將字

10、符串第一個(gè)字母大寫ucwords(str)將字符串的每個(gè)單詞的第一個(gè)字母大寫strlen(str)獲得字符串長(zhǎng)度strcmp(str1,str2)比較兩個(gè)字符串大小,返回負(fù)數(shù)表示str1小于str2;返回正數(shù)表示str1大于str2;返回零表示二字符串相同strtr()字符串翻譯-strtr(str,mode,replace)-strtr(str,array)strtolower將字符串轉(zhuǎn)化為小寫strtoupper將字符串轉(zhuǎn)化為大寫parse_url(str)解析完整的url轉(zhuǎn)變?yōu)闉閿?shù)組parse_str(str,out)解析請(qǐng)求字符串轉(zhuǎn)變?yōu)閿?shù)組htmlspecialchars()轉(zhuǎn)換htm

11、l代碼為實(shí)體代碼printf/sprintf%b%d%c%x%s%f%Xprintf(格式化內(nèi)容,具體信息);printf(%d%b%c,10,20,10)b整數(shù)轉(zhuǎn)成二進(jìn)位。c整數(shù)轉(zhuǎn)成對(duì)應(yīng)的ASCII字符。d整數(shù)轉(zhuǎn)成十進(jìn)位。*f單倍精確度數(shù)字轉(zhuǎn)成浮點(diǎn)數(shù)。*o整數(shù)轉(zhuǎn)成八進(jìn)位。s轉(zhuǎn)成字符串。*x整數(shù)轉(zhuǎn)成小寫十六進(jìn)位。X整數(shù)轉(zhuǎn)成大寫十六進(jìn)位。*第五單元【表單處理】表單在網(wǎng)頁的作用不可小視,主要負(fù)責(zé)數(shù)據(jù)采集工作,比如可以采集用戶名、密碼、email郵箱等信息。表單可以分為3部分:表單標(biāo)簽:表單域:文本框、密碼框、下拉列表、單選框、復(fù)選框、文本域、隱藏域、附件表單按鈕:submitreset$_GET$

12、_POST1.為什么要用表單,表單可以實(shí)現(xiàn)兩個(gè)或多個(gè)頁面之間傳遞數(shù)據(jù)。2.制作一個(gè)表單(文本框、密碼框、單選按鈕、多選按鈕、下拉菜單、文本域、隱藏域)3.制作一個(gè)接收頁面,用于接收表單數(shù)據(jù)4.分別利用post和get兩種方式進(jìn)行表單數(shù)據(jù)傳遞5.利用超鏈接方式進(jìn)行g(shù)et方式傳送數(shù)據(jù)作業(yè):進(jìn)行表單驗(yàn)證*第六單元【其他常用函數(shù)】date(format,timestamp)/格式化時(shí)間信息,并返回date_default_timezone_set(asia/shanghai);/設(shè)置時(shí)區(qū)time()/返回當(dāng)前時(shí)間戳信息mktime(hour,minute,second,month,day,year)m

13、ktime(小時(shí),分鐘,秒,月,日,年)/取得一個(gè)日期的Unix時(shí)間戳header()發(fā)送http頭信息/當(dāng)前頁面輸出內(nèi)容是html,編碼為utf-8格式header(content-type:text/html;charset=utf-8);/當(dāng)前頁面輸出內(nèi)容的格式是圖片header(content-type:image/pnggifjpeg);/頁面5秒后要跳轉(zhuǎn)到新網(wǎng)址header(refresh:5;url=/five/string.php);/頁面重定向/window.location.href=HYPERLINK/five/form.html/five/form.html;heade

14、r(location:/five/string.php);abs(-4.6)/取得絕對(duì)值信息ceil(4.0)/向上取整urlencode(str)替換所有非字母數(shù)字(-_.)的字符,變?yōu)?后面跟兩位16進(jìn)制數(shù),空格變?yōu)?號(hào)(字母、數(shù)字、-、_、.不給替換)urldecode(str)對(duì)已%#編碼的URL進(jìn)行解析還原max()/取得最大值-echomax(1,3,5,6,7);/7-echomax(array(2,4,5);/5-echomax(0,1hello);/1hello-echomax(hello,0);/hello-echomax(-1,hello);/hello-print_r(

15、max(array(2,4,8),array(2,5,7);/array(2,5,7)-print_r(max(string,array(2,5,7),42);/array(2,5,7)數(shù)組和非數(shù)組比較數(shù)組總認(rèn)為最大min()/取得最小值mt_rand(65,94)/獲得隨機(jī)數(shù)round()/四舍五入取整flush()/輸出準(zhǔn)備區(qū)內(nèi)容output_buffering=Off(php.ini)chr(mt_rand(65,90)隨機(jī)獲得字母ord(chr(mt_rand(65,90)將字母轉(zhuǎn)化為對(duì)應(yīng)的ascII碼數(shù)字basename(路徑名)獲得路徑中文件名部分d:/web/phpone/fiv

16、e/form.html*第七單元【php連接mysql】*mysql_connect(主機(jī),用戶名,密碼)打開一個(gè)到MySQL服務(wù)器的連接*mysql_select_db(數(shù)據(jù)庫,連接數(shù)據(jù)庫資源)選擇MySQL數(shù)據(jù)庫*mysql_query(setnamesutf8);設(shè)定字符集*mysql_close()關(guān)閉MySQL鏈接*mysql_query(語句)發(fā)送并執(zhí)行一條sql語句*mysql_fetch_array(結(jié)果資源)從結(jié)果集中取得一行結(jié)果(索引/關(guān)聯(lián)數(shù)組)*mysql_fetch_assoc(結(jié)果資源)從結(jié)果集中取得一行結(jié)果(關(guān)聯(lián)數(shù)組)mysql_fetch_row(結(jié)果資源)從結(jié)果

17、集中取得一行結(jié)果(索引數(shù)組)mysql_fetch_object(結(jié)果資源)從結(jié)果集中取得一行結(jié)果(對(duì)象)mysql_errno()返回錯(cuò)誤號(hào)碼*mysql_error()返回錯(cuò)誤信息*mysql_affected_rows()獲得受影響的結(jié)果數(shù)目【增、刪、改、查】*mysql_num_rows(結(jié)果資源)用于計(jì)算查詢結(jié)果中所得行的數(shù)目【查】*mysql_insert_id()傳回最近一次使用INSERT指令產(chǎn)生的自動(dòng)增長(zhǎng)ID值mysql_result(結(jié)果集,索引行,字段)指定獲取結(jié)果mysql_free_result(結(jié)果資源)釋放結(jié)果集mysql_num_fields(結(jié)果資源)用于計(jì)算

18、查詢結(jié)果中所得列的數(shù)目mysql_fetch_field(結(jié)果資源)從結(jié)果集中取得一列的結(jié)果,以對(duì)象形式返回mysql_pconnect(主機(jī),用戶名,密碼)永久連接數(shù)據(jù)庫mysql_connect();學(xué)習(xí)步驟:1.建立一個(gè)數(shù)據(jù)庫班級(jí)號(hào)2.數(shù)據(jù)庫里邊建立一個(gè)數(shù)據(jù)表sw_useru_idint主鍵、自增u_namevarchar(24)姓名u_psdvarchar(128)地址u_sexvarchar(2)性別u_hobbyvarchar(32)愛好u_xuelivarchar(8)學(xué)歷u_introducetext簡(jiǎn)介u_itimedatetime注冊(cè)時(shí)間CREATETABLEsw_user

19、(u_idint(11)NOTNULLauto_incrementCOMMENT自增id,u_namevarchar(32)NOTNULLCOMMENT會(huì)員名,u_psdvarchar(64)NOTNULLCOMMENT會(huì)員密碼,u_sexvarchar(4)NOTNULLCOMMENT性別,u_hobbyvarchar(32)NOTNULLCOMMENT愛好,u_xuelivarchar(8)NOTNULLCOMMENT學(xué)歷,u_introducevarchar(128)NOTNULLCOMMENT簡(jiǎn)介,u_itimedatetimeNOTNULLCOMMENT注冊(cè)時(shí)間,PRIMARYKEY

20、(u_id)ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT=會(huì)員表AUTO_INCREMENT=1;insertintosw_uservalues(null,張三,123,男,籃球,足球,初中,我是張三,now();insertintosw_uservalues(null,李四,456,女,旅游,看書,高中,我是李四,now();insertintosw_uservalues(null,王五,789,男,爬山,上網(wǎng),大學(xué),我是王五,now();3.實(shí)現(xiàn)通過html表單寫入數(shù)據(jù)到數(shù)據(jù)庫u_idu_nameu_psdu_sexu_hobbyu_xueliu_intr

21、oduce1張三123男籃球,足球初中我是張三2李四456女旅游,看書高中我是李四3王五789男爬山,上網(wǎng)大學(xué)我是王五4.(自選)將寫入的數(shù)據(jù)展現(xiàn)到頁面*第八單元【留言板】學(xué)習(xí)留言板目的:a、復(fù)習(xí)表單知識(shí)b、復(fù)習(xí)數(shù)據(jù)庫知識(shí)c、可以對(duì)php編程有一個(gè)簡(jiǎn)單認(rèn)識(shí)本章重點(diǎn):a、表單使用b、數(shù)據(jù)庫操作c、post和get方式傳值,$_POST$_GETd、隱藏域傳值e、外鍵使用本章難點(diǎn):a、外鍵使用b、post和get方式傳值知識(shí)點(diǎn):a、formb、$_POST$_GET使用c、hiddend、html標(biāo)簽使用f、javascript語言應(yīng)用g、表單驗(yàn)證具體實(shí)現(xiàn)步驟:1.在數(shù)據(jù)庫建立兩張表sw_leav

22、e_word和sw_back_word(留言表和回復(fù)表)sw_leave_word:字段數(shù)據(jù)類型leave_idint主鍵、自增leave_titlevarchar(20)標(biāo)題leave_contenttext內(nèi)容leave_timedatetime添加時(shí)間sw_back_word:back_idint主鍵、自增back_leave_idint外鍵(留言id)back_contenttext內(nèi)容back_timedatetime回復(fù)時(shí)間CREATETABLEsw_leave_word(leave_idint(11)NOTNULLauto_incrementCOMMENT自增id,leave_t

23、itlevarchar(64)NOTNULLCOMMENT留言標(biāo)題,leave_contenttextNOTNULLCOMMENT留言內(nèi)容,leave_timedatetimeNOTNULLCOMMENT留言時(shí)間,PRIMARYKEY(leave_id)ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT=留言表AUTO_INCREMENT=1;CREATETABLEsw_back_word(back_idint(11)NOTNULLauto_incrementCOMMENT自增id,back_leave_idint(11)NOTNULLCOMMENT留言id:外鍵,

24、back_contenttextNOTNULLCOMMENT回復(fù)內(nèi)容,back_timedatetimeNOTNULLCOMMENT回復(fù)時(shí)間,PRIMARYKEY(back_id)ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT=回復(fù)表AUTO_INCREMENT=1;2.制作添加留言表單,實(shí)現(xiàn)留言的添加3.留言明細(xì)頁面,逐條顯示留言信息4.修改留言,對(duì)需要修改(get方式傳遞被修改留言id值,再利用隱藏域方式傳遞給接收頁面)的項(xiàng)目進(jìn)行修改5.留言詳細(xì)顯示功能,有的留言內(nèi)容比較多,在明細(xì)頁面不可能全部顯示出來,這是需要留言詳細(xì)顯示功能。(利用get方式傳遞留言id

25、)6.在詳細(xì)頁面可以實(shí)現(xiàn)回復(fù)功能和回復(fù)留言展示,步驟:制作一個(gè)回復(fù)表單和接收數(shù)據(jù)頁面7.(自己實(shí)現(xiàn))刪除留言,對(duì)無效、無用的留言實(shí)現(xiàn)刪除功能(這時(shí)需要用get方式傳遞被刪除留言id值)*第九章面向?qū)ο鬄槭裁匆妹嫦驅(qū)ο缶幊蹋?.是一門流行語言2.程序思想3.框架的使用4.模塊化易于維護(hù)5.框架要使用面向?qū)ο驩OP(Object-OrientedProgramming)OOP達(dá)到了軟件工程的三個(gè)主要目標(biāo):重用性、靈活性和擴(kuò)展性。什么是類:類是具有相同屬性和服務(wù)(功能、行為)的一組對(duì)象的集合什么是對(duì)象對(duì)象是系統(tǒng)中用來描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。一個(gè)對(duì)象由一個(gè)類名并包括屬性說

26、明和服務(wù)說明兩部分。A1.理解面向?qū)ο笏枷?.理解類和對(duì)象(實(shí)例化對(duì)象)3.類的成員屬性和方法4.對(duì)象訪問成員屬性和方法類:車、燈、魚、人、學(xué)生對(duì)象:車(車甲、乙、丙、丁等)車撞樹燈(燈甲、乙、丙、丁等)燈壞了魚(魚甲、乙、丙、丁等)魚吐泡人(張三、李四、王五、趙六、田七等)人打架學(xué)生(學(xué)生甲、乙、丙、丁)學(xué)生遲到B1.實(shí)例化對(duì)象在內(nèi)存中如何分配2.對(duì)象中成員屬性和方法的訪問、$this關(guān)鍵字使用3.構(gòu)造方法和析構(gòu)方法構(gòu)造函數(shù):實(shí)例化對(duì)象首先第一個(gè)需要做的事情就是構(gòu)造函數(shù)。一個(gè)小孩出生到5歲之前,所有的事情都是父母幫助做的,包括起名字、穿衣服、吃飯等等。析構(gòu)函數(shù):一個(gè)對(duì)象被使用完后需要做一些善

27、后工作,這些善后工作是不需要人為干預(yù)的,例如資源釋放、變量刪除等。例如:一個(gè)小狗死后,主人非常愛惜它,就把它埋在了家后園的一顆樹下。小狗被埋這件事情是主人做的,不是狗做的。這就是析構(gòu)函數(shù)。C類的三大特性:封裝、繼承、多態(tài)1.類的繼承:子類和父類之間的事情B類的對(duì)象擁有A類的全部屬性與行為,稱作B對(duì)A類的繼承車(汽車、卡車、小轎車、客車等)燈(臺(tái)燈、燈管、路燈、燈塔等)魚(金魚、鱷魚、鯊魚、鯨魚、鯉魚、刀魚等)人(黑人、白人、黃種人、中國(guó)人、美國(guó)人、男人、女人等)2.類的封裝3.類的重寫子類和父類之間的事情,就是說父類有的方法,子類不但可以直接使用,還可以在子類中重新定義具體內(nèi)容,例如有一個(gè)父親

28、會(huì)駕駛汽車,那么他的兒子也會(huì)駕駛汽車,但他的兒子可以不駕駛汽車,而駕駛飛機(jī),這就是類方法的重寫。4.類中的修飾符:public、protected、privatepublic:類成員訪問沒有限制,內(nèi)部外部成員都可以訪問protected:受保護(hù)的,不能被類外部成員訪問,該類的子類可以訪問,可以實(shí)現(xiàn)對(duì)成員屬性的讀、寫操作private:私有的,只能類里邊的成員自己訪問,類外部的成員都不能訪問5.了解內(nèi)容_get()、_set()、_unset()一個(gè)屬性被修飾為私有的(private),那么這個(gè)屬性在類的外部是不可以讀取和修改的,現(xiàn)在有一種方法可以設(shè)置該屬性既是私有的,還可以被類的外部成員讀取即

29、_get()和_set()function_get($key_name)return$this-$key_name;/$key_name泛指調(diào)用的私有屬性名function_set($key_name,$key_value)$this-$key_name=$key_value;D1.final(最后的)關(guān)鍵字使用該關(guān)鍵字修飾的類不能被繼承該關(guān)鍵字修飾的方法不能被重寫2.static(靜態(tài))關(guān)鍵字使用(類的內(nèi)部、外部、子類)實(shí)例化對(duì)象在內(nèi)存中的分配有講到大的數(shù)據(jù)在內(nèi)存被分配到堆空間里邊?,F(xiàn)在有一個(gè)例子:有一個(gè)學(xué)生這個(gè)類,里邊有一個(gè)成員屬性是國(guó)家,標(biāo)識(shí)該對(duì)象是屬于哪個(gè)國(guó)家的,比如美國(guó)、英國(guó)、德國(guó)等

30、,這個(gè)類在實(shí)例化對(duì)象時(shí)候,每個(gè)對(duì)象在內(nèi)存中都會(huì)分配一個(gè)空間用于存放國(guó)家這個(gè)成員屬性,如果有100個(gè)對(duì)象,那么在內(nèi)容中會(huì)分配100個(gè)相應(yīng)的空間。如果這個(gè)類的使用對(duì)象是在中國(guó)境內(nèi),那么每個(gè)對(duì)象的國(guó)家屬性就會(huì)是一樣的,即中國(guó),相應(yīng)的在內(nèi)存中會(huì)有100個(gè)空間存放100個(gè)相同的內(nèi)容這會(huì)造成空間浪費(fèi),其實(shí)到這里我們可以知道100個(gè)相同的內(nèi)容用一個(gè)空間存放就可以,反正都是一樣的,這就產(chǎn)生了靜態(tài)化概念static。用static修飾的成員屬性,該屬性就不是對(duì)象的,而是類的。3.self和parent關(guān)鍵字使用$this、self、parent三者的區(qū)別$this:泛指調(diào)用該方法的當(dāng)前對(duì)象,在類的內(nèi)部調(diào)用自己的

31、屬性和方法時(shí)可以使用$thisself:代表當(dāng)前類,可以在類的內(nèi)部調(diào)用自己的靜態(tài)成員和類常量parent:代表父類,在子類可以使用parent調(diào)用父類的靜態(tài)成員和父類常量在類的內(nèi)部訪問類中的成員(屬性和方法),可以用$this,該關(guān)鍵字泛指對(duì)象,這是訪問一般的類成員,如果訪問的成員是用static關(guān)鍵字修飾的,就不能用$this了,因?yàn)橛胹tatic修飾的類成員是被類本身擁有,不屬于任何對(duì)象了,這時(shí)候需要用self關(guān)鍵字修飾self:成員在類的外部訪問類本身擁有的成員可以這樣類名:成員屬性。在子類中訪問父類擁有的成員可以用parent關(guān)鍵字parent:成員屬性4.const(常量)關(guān)鍵字使用

32、在php中可以定義常量,類外部用define定義,類內(nèi)部用const定義。常量的擁有者是類本身,類內(nèi)部訪問常量用self:常量類外部訪問常量用類名:常量子類訪問常量parent:常量5.類成員的訪問self、類名、parent6.魔術(shù)方法clone、_call、_autoload使用clone:在一個(gè)項(xiàng)目里邊我們有時(shí)候需要兩個(gè)或多個(gè)完全一樣的初始化對(duì)象,這時(shí)候可以使用clone技術(shù)不用clone技術(shù)也可以,不過每個(gè)新的對(duì)象都需要初始化屬性值,這樣比較繁瑣,也容易出錯(cuò),使用clone就比較簡(jiǎn)單,克隆出來的多個(gè)對(duì)象彼此是獨(dú)立的,互不相干。$p2=clone$p1;_call:在類的使用過程中,如果

33、一個(gè)對(duì)象調(diào)用的方法不在類里邊,那么這時(shí)候程序要報(bào)錯(cuò),然后程序退出不能繼續(xù)運(yùn)行。這樣做用戶體驗(yàn)非常不好,如果有一種方法可以使得程序報(bào)錯(cuò)完后可以繼續(xù)運(yùn)行,這樣的程序給人更智能、用戶體驗(yàn)更好的感覺,這時(shí)候就可以用_callpublicfunction_call($method_name,$args)echo你訪問的方法:;echo$method_name;echo參數(shù):;print_r($args);echo不存在;_autoload:開發(fā)一個(gè)軟件系統(tǒng),往往里邊會(huì)有很多類,在初始化類對(duì)象之前需要先include這個(gè)對(duì)象對(duì)應(yīng)的類文件。所有的類不能都放到一個(gè)文件(文件臃腫,不易維護(hù)),這樣就會(huì)在程序開始處有很多的include列表,這樣做非常繁瑣,出現(xiàn)一個(gè)新的類就需要被include,有沒有一種方法可以使得被include的類文件在實(shí)例化對(duì)象時(shí)候才引入,否則不動(dòng)作,答案是有的,這時(shí)候可以用魔術(shù)方法_autoloadfunction_autoload($className)include($className.php);7.了解內(nèi)容_toString()、se

溫馨提示

  • 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)論