php動(dòng)態(tài)網(wǎng)站開發(fā)教案_第1頁(yè)
php動(dòng)態(tài)網(wǎng)站開發(fā)教案_第2頁(yè)
php動(dòng)態(tài)網(wǎng)站開發(fā)教案_第3頁(yè)
php動(dòng)態(tài)網(wǎng)站開發(fā)教案_第4頁(yè)
php動(dòng)態(tài)網(wǎng)站開發(fā)教案_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

php動(dòng)態(tài)網(wǎng)站開發(fā)教案《PHP動(dòng)態(tài)網(wǎng)站開發(fā)》教案~年第2學(xué)期二○一七年二月

《ASP動(dòng)態(tài)網(wǎng)站開發(fā)》課程教案授課班級(jí)15級(jí)淘寶班課次1授課方式理論課討論課□實(shí)驗(yàn)課□習(xí)題課□其它□學(xué)時(shí)安排3授課題目(教學(xué)章、節(jié)或主題):PHP環(huán)境配備、數(shù)據(jù)類型慣用PHP運(yùn)算類型、PHP條件、循環(huán)語(yǔ)句的介紹與應(yīng)用教學(xué)目的、規(guī)定(分掌握、熟悉、理解三個(gè)層次):理解PHP環(huán)境的配備,wamp環(huán)境的設(shè)立。掌握PHP的數(shù)據(jù)類型及其數(shù)據(jù)的運(yùn)算規(guī)則。掌握PHP的條件語(yǔ)句、循環(huán)語(yǔ)句的使用方法及語(yǔ)法規(guī)則。教學(xué)重點(diǎn)及難點(diǎn):動(dòng)態(tài)網(wǎng)站的環(huán)境配備與PHP的條件語(yǔ)句、循環(huán)語(yǔ)句的使用方法及語(yǔ)法規(guī)則。教學(xué)基本內(nèi)容及辦法手段PHP環(huán)境搭配和代碼調(diào)試1、PHP的優(yōu)勢(shì)和背景PHP是能讓你生成動(dòng)態(tài)網(wǎng)頁(yè)的工具之一。PHP代表:超文本預(yù)解決器(PHP:HypertextPreprocessor)。PHP是完全免費(fèi)的,不用花錢,你能夠從PHP官方站點(diǎn)()自由下載。你不必把頭埋進(jìn)100多頁(yè)的文檔中努力學(xué)習(xí)才能夠?qū)懗鲆环N象樣的程序。只要理解某些基本的語(yǔ)法和語(yǔ)言特色,你就能夠開始你的PHP編碼之旅了。如果更加好的學(xué)習(xí)建議能夠先看看些HTML和SQL的基礎(chǔ)。2、PHP環(huán)境的搭配所需的工具:WampServer5集成環(huán)境Wamp5是Apache+PHP+Mysql在Windows下的集成環(huán)境,擁有簡(jiǎn)樸的圖形和菜單安裝。該版本集成了PHP5.2.5、Mysql5、Apache2、phpMyAdmin、SQLiteManager1.2.0滿了大部分PHPer的需求…介紹一下wamp的虛擬目錄、服務(wù)圖標(biāo)的顯示、環(huán)境測(cè)試3、PHP慣用工具和數(shù)據(jù)庫(kù)慣用工具PHP開發(fā)工具:ZendStodio,PHPedit,EditPlus2,easyeclipse,DW等MYSQL工具:MYSQLAdministrator4、書寫和調(diào)試簡(jiǎn)樸的PHP代碼從語(yǔ)法上看,PHP語(yǔ)言近似于C語(yǔ)言。能夠說(shuō),PHP是借鑒C語(yǔ)言的語(yǔ)法特性,由C語(yǔ)言改善而來(lái)的。我們能夠混合編寫PHP代碼和HTML代碼,不僅能夠?qū)HP腳本嵌入到HTML文獻(xiàn)中,我們甚至還能夠把HTML標(biāo)簽也嵌入在PHP腳本里。下列是你能夠采用的幾個(gè)辦法。你能夠選用其中一種你最適合的并且就這樣堅(jiān)持這種辦法!從HTML中分離下列是能夠使用的辦法:

<?...?>短標(biāo)簽?zāi)J?/p>

<?php...?>原則模式

<scriptlanguage="php">...</script>類似于javascript模式

<%...%>修改模式,也能夠支持在PHP中用“;”來(lái)分隔語(yǔ)句。那些從HTML中分離出來(lái)的標(biāo)志也表達(dá)語(yǔ)句的結(jié)束。注釋PHP支持C,C和Unix風(fēng)格的注釋方式:/*C,C風(fēng)格多行注釋*/

//C風(fēng)格單行注釋

#Unix風(fēng)格單行注釋例子:<?phpecho"HelloWorld!";或phpinfo();

?>5、如何解決簡(jiǎn)樸的PHP錯(cuò)誤1、你要把PHP.ini里的display_errors

=

On才能夠顯示錯(cuò)誤位置2、習(xí)慣使用echo或者print打印,每一步輸出看看成果與否對(duì)的。3、學(xué)會(huì)使用注釋來(lái)屏蔽符號(hào)來(lái)調(diào)試//………./*…………*/#4、要懂得看錯(cuò)誤信息錯(cuò)誤的顯示信息的行數(shù)及什么錯(cuò)位置。PHP的數(shù)據(jù)類型源碼調(diào)試1、PHP基本語(yǔ)法和數(shù)據(jù)類型(1)、PHP基本語(yǔ)法:1、htm和php混編<fontcolor=red>我好</font>2、一種語(yǔ)句以;(分號(hào)結(jié)束,英文半角)3、如何定義一種變量,和變量的使用$abc=9;//以$開始,以A-Z或a-zEcho$abc;(2)、PHP數(shù)據(jù)運(yùn)算類型四種標(biāo)量類型: boolean(布爾型)理解為真假型$bo=TRUE;$bo=FALSE;//賦值為0時(shí)為假,不小于0為真 integer(整型)$bo=1;$bo=-12; float(浮點(diǎn)型,也作“double”)理解為小數(shù)型$bo=1.001;$bo=3.1415926; string(字符串)$bo=“這段字符串orENWord”;//雙引號(hào)支持轉(zhuǎn)義字符,單引號(hào)不支持。兩種復(fù)合類型: array(數(shù)組)$bo=array(1,2,3,4);$bo=array(“A”=>1,“B”=>2); object(對(duì)象)源碼調(diào)試1、解壓源碼到網(wǎng)站目錄2、按照數(shù)據(jù)庫(kù)3、調(diào)試成功2、學(xué)習(xí)一種PHP源碼調(diào)試(discuz論壇)慣用PHP運(yùn)算類型介紹與應(yīng)用1、算術(shù)運(yùn)算//理解為數(shù)學(xué)運(yùn)算例:5*6-122*(28+1)注:算術(shù)運(yùn)算遵照數(shù)學(xué)運(yùn)算規(guī)則:從左到右,先算乘除后算加減,碰到括號(hào)先算括號(hào)內(nèi).2、賦值運(yùn)算//把一種值寫入一種變量例:$a=1;$a+=2;$a*=3;注:把右邊的值賦予左的變量。3、比較運(yùn)算/用來(lái)擬定兩個(gè)數(shù)之間的關(guān)系例:1==23!=25<3"ok"=="ok"1==='1'//值相等且類型相似,用echo輸出時(shí)真為1,假不輸出。注:比較運(yùn)算得到的值為布爾值4、邏輯運(yùn)算//先將比較的兩邊轉(zhuǎn)換成布爾類型,再執(zhí)行他們的關(guān)系例:1&&10or11xor1!$a注:邏輯運(yùn)算得到的值為布爾值5、遞增遞減運(yùn)算//只操作變量的一種運(yùn)算例:$a++//$a=$a+1++$a$a--//$a=$a-1--$aPHP條件語(yǔ)句的介紹與應(yīng)用if條件語(yǔ)句程序中最常見(jiàn)的,大部分語(yǔ)言中都存在的一種條件語(yǔ)句,在開發(fā)中起著至關(guān)重要的作用,格式以下:if…else…if…else…if…elseif…if(expr)echoTRUEelseechoFALSEif(expr){echoTRUE}else{echoFALSE}if(expr){echoTRUE}elseif(expr){echoCON}else{echoFALSE}2、switch條件語(yǔ)句在多個(gè)條件當(dāng)中使用Switch更加精巧,格式以下:switch($i){case0:echo"輸出0";break;case1:echo"輸出1";break;case2:echo"輸出2";break;default:echo“其它默認(rèn)輸出”;}if($i==0){echo"輸出0";}elseif($i==1){echo"輸出1";}elseif($i==2){echo"輸出2";}PHP循環(huán)語(yǔ)句的介紹與應(yīng)用1、breakn循環(huán)控制語(yǔ)句//也能夠理解為循環(huán)中斷語(yǔ)句,跳出循環(huán)語(yǔ)句break:跳出一層循環(huán)breakn;跳出N條for($a=1;$a<10;$a++){if($a==5)break;echo"循環(huán)".$a."</br>";}2、do…while循環(huán)語(yǔ)句do{……}while(expr)while(expr){……}先執(zhí)行一次循環(huán)再判斷條件先判斷條件執(zhí)再行一次循環(huán)for循環(huán)語(yǔ)句//for循環(huán)是PHP中最復(fù)雜的循環(huán)構(gòu)造。for(expr1;expr2;expr3){……}for($i=1;$i<=10;$i++){echo$i;//$i=1:無(wú)條件執(zhí)行//$i<=10,$i++:循環(huán)條件}作業(yè)、討論題、思考題:PHP環(huán)境的配備,wamp環(huán)境的設(shè)立,練習(xí)PHP的條件語(yǔ)句、循環(huán)語(yǔ)句的使用方法及語(yǔ)法規(guī)則的應(yīng)用。課后小結(jié):本節(jié)課重要解說(shuō)了PHP環(huán)境的配備,wamp環(huán)境的設(shè)立,介紹了PHP的數(shù)據(jù)類型及PHP多個(gè)運(yùn)算及運(yùn)算規(guī)則。重點(diǎn)介紹了PHP的條件語(yǔ)句、循環(huán)語(yǔ)句的使用方法及語(yǔ)法規(guī)則?!禔SP動(dòng)態(tài)網(wǎng)站開發(fā)》課程教案授課班級(jí)15級(jí)淘寶班課次2授課方式理論課討論課□實(shí)驗(yàn)課□習(xí)題課□其它□學(xué)時(shí)安排3授課題目(教學(xué)章、節(jié)或主題):PHP數(shù)組、函數(shù)及Mysql介紹和創(chuàng)立新的數(shù)據(jù)庫(kù)與數(shù)據(jù)庫(kù)中的慣用SQL語(yǔ)句教學(xué)目的、規(guī)定(分掌握、熟悉、理解三個(gè)層次):純熟掌握PHP數(shù)組的定義、數(shù)組的遍歷、foreach的應(yīng)用。掌握創(chuàng)立數(shù)據(jù)庫(kù)的辦法及其基本語(yǔ)句。掌握數(shù)據(jù)庫(kù)中的慣用SQL語(yǔ)句。教學(xué)重點(diǎn)及難點(diǎn):creat、select、update、insert語(yǔ)句的應(yīng)用。教學(xué)基本內(nèi)容及辦法手段PHP數(shù)組的創(chuàng)立修改使用1、創(chuàng)立和修改數(shù)組/多維數(shù)組PHP中的數(shù)組是一種核心字或值的集合(值能夠是任何一種類型,涉及另一種數(shù)組)PHP中使用array來(lái)創(chuàng)立一種數(shù)組:array(key=>value,key=>value……)例子:$arr=array(3,5,7,9,6);$arr=array("id"=>2,"title"=>3);用方括號(hào)的語(yǔ)法來(lái)修改數(shù)組:$arr[]=value$arr=array("a"=>"理論","b"=>"教程","c"=>"第二次課");$arr['a']="PHP學(xué)習(xí)";$arr['c']="第二講";介紹一下print_r()函數(shù)$arr=array(array(2,4),array(3,5));print_r($arr);Array([0]=>Array([0]=>2[1]=>4)[1]=>Array([0]=>3[1]=>5))2、數(shù)組與數(shù)組的函數(shù)使用count函數(shù)統(tǒng)計(jì)數(shù)組條數(shù)count($arr);使用is_array函數(shù)判斷數(shù)組is_array($arr);另一種創(chuàng)立數(shù)組的函數(shù)explodeexplode("key",value);//分解函數(shù)$a="1986-1983-";$arr=explode("-",$a);Print_r($arr);3、使用foreach遍歷數(shù)組遍歷數(shù)組諸多個(gè)辦法,能夠使用For循環(huán),while循環(huán),最巧妙的一種遍歷數(shù)組foreach給我們帶來(lái)了跟多方便foreach($arras$key=>$value){……}$arr=array(1986,1983,);foreach($arras$key=>$value){ echo"需要的核心字$key需要的值$value<br>"; }PHP函數(shù)和自定義函數(shù)1、PHP函數(shù)介紹函數(shù)就是為理解決某些常見(jiàn)問(wèn)題實(shí)現(xiàn)制作好的“模”。PHP函數(shù)分為:系統(tǒng)內(nèi)部函數(shù)和自定義函數(shù)。格式:func(val1,val2,…);例子date("Y-m-d")md5("zzhtpz")函數(shù)的優(yōu)越性:控制程序設(shè)計(jì)的復(fù)雜性提高軟件的可靠性提高軟件的開發(fā)效率提高軟件的可維護(hù)性提高程序的重用性查看PHP中文手冊(cè),查看有關(guān)的函數(shù)2、PHP如何自定義函數(shù)使用Function來(lái)自定義一種函數(shù):格式:Functionfunc_name($val){……}函數(shù)的命名跟自定義變量同樣,只能使用_,A~Z,a~z,一種自定義函數(shù)中的變量是局部的,函數(shù)外不生效,使用global全局變量的時(shí)候,在函數(shù)外才可使用變量(不建議)。為了放置全局變量的混亂能夠使用unset($var)刪除一種變量。functionee(){echo"輸出自定義函數(shù)";}ee();functionee($val){echo"輸出自定義函數(shù)".$val;}ee(33);3、使用自定義函數(shù)實(shí)例操作(1)使用return函數(shù)返回函數(shù)內(nèi)部值functionee(){return"輸出自定義函數(shù)";}$a=ee();echo$a;(2)自定義函數(shù)值的接受和選擇性接受functionee($val){return"輸出自定義函數(shù)".$val;}$a=ee("好?");echo$a;functionee($val,$val2=1){ $a=$val+$val2;return$a;}$a=ee(5);echo$a;functionee($val,$val2=1){ $a=$val+$val2;return$a;}$a=ee(5,6);echo$a;直接接受選擇性接受(3)function_exists()判斷函數(shù)與否存在//避免錯(cuò)誤if(function_exists('ee')){ echo"真";}else{echo"假";}(4)引用返回值使用&符號(hào)Mysql介紹和創(chuàng)立新的數(shù)據(jù)庫(kù)1、MYSQL介紹與概要MySQL是一種小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司,現(xiàn)在已經(jīng)被Sun公司收購(gòu),支持FreeBSD、Linux、MAC、Windows等多個(gè)操作系統(tǒng),與其它的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQLServer等相比功效稍弱某些。1、能夠解決擁有上千萬(wàn)條統(tǒng)計(jì)的大型數(shù)據(jù)2、支持常見(jiàn)的SQL語(yǔ)句規(guī)范3、可移植行高,安裝簡(jiǎn)樸小巧4、良好的運(yùn)行效率,有豐富信息的網(wǎng)絡(luò)支持5、調(diào)試、管理,優(yōu)化簡(jiǎn)樸(相對(duì)其它大型數(shù)據(jù)庫(kù))2、訪問(wèn)MYSQL的幾個(gè)途徑知識(shí)點(diǎn):MYSQL默認(rèn)使用的是3306端口1、使用工具M(jìn)YSQL官方的工具訪問(wèn):MySQLAdministratortool安裝:環(huán)節(jié)下載Backupproject//備份Restore//導(dǎo)入MySQLquery//瀏覽表和數(shù)據(jù)庫(kù)2、使用第三方工具訪問(wèn):mysqlexec、mysql連接器3、使用WEB方式訪問(wèn):phpMyAdmin//最常見(jiàn)比較:使用客戶端工具操作效率高,安全性高,使用WEB方式簡(jiǎn)樸方便,不受限制。3、介紹數(shù)據(jù)庫(kù)中慣用字段類型整數(shù)型:TINYINT,SMALLINT,INT,BIGINT小數(shù)型:FLOAT,DOUBLE,DECIMAL(M,D)字符型:CHAR,VARCHAR日期型:DATETIME,DATE,TIMESTAMP備注型:TINYTEXT,TEXT,LONGTEXT4、創(chuàng)立一種簡(jiǎn)樸的數(shù)據(jù)庫(kù)創(chuàng)立一種數(shù)據(jù)庫(kù)命令:CREATETABLE刪除一種數(shù)據(jù)庫(kù)命令:DROPTABLE修改一種字段名稱:RENAMETABLE`原字段`TO`新字段`;刪除一種字段:ALTERTABLE`表`DROP`原字段`插入一種字段:ALTERTABLE`表`ADD`新字段`…AFTER`原字段`CREATETABLE`test`(`id` int(10)NOTNULLauto_increment,`uid` varchar(10)NOTNULLdefault'0',`regdate`dateNOTNULL,`remark`textNULL,PRIMARYKEY(`id`))實(shí)例解說(shuō):1.將命令復(fù)制到phpmyadmin中建立表2.用客戶端工具建立表//設(shè)計(jì)幾個(gè)字段瀏覽/構(gòu)造/SQL/搜索、插入、導(dǎo)出/import/操作.導(dǎo)入數(shù)據(jù)庫(kù)文獻(xiàn)1、SELECT查詢語(yǔ)句和條件語(yǔ)句SELECT查詢字段FROM表名WHERE條件查詢字段:能夠使用通配符*、字段名、字段別名表名:數(shù)據(jù)庫(kù).表名,表名慣用條件:=等于、<>不等于、in包含、notin不包含、like匹配、BETWEEN在范疇、notBETWEEN不在范疇<、>條件運(yùn)算:and、or、()2、排序,分組,指針查詢,計(jì)算分組語(yǔ)句:groupby字段排序語(yǔ)句:orderby字段,字段ASC/DESC指針查詢:limit初始值,結(jié)束值計(jì)算:COUNT(*)統(tǒng)計(jì)函數(shù)MAX(*)最大值函數(shù)MIN(*)最小值函數(shù)AVG(*)平均值函數(shù)SUM(*)累計(jì)值函數(shù)(∑)3、Insert插入語(yǔ)句insertinto表名(字段…,…)values(值…,…)insertinto表名values(值…,…)插入時(shí)須考慮清晰字段類型避免插入后出現(xiàn)缺值,亂碼現(xiàn)象Update更新語(yǔ)句UPDATE表名SET字段=值WHERE條件limit慣用條件:=等于、<>不等于、in包含、notin不包含、like匹配、BETWEEN在范疇、notBETWEEN不在范疇條件預(yù)算:and、or、()5、Delete刪除語(yǔ)句DELETEFROM表名WHERE條件limit慣用條件:=等于、<>不等于、in包含、notin不包含、like匹配//%、 BETWEEN在范疇、notBETWEEN不在范疇條件預(yù)算:and、or、()MYSQL在PHP5中的應(yīng)用1、PHP與mysql建立鏈接php.ini加載mysql組件:extension=php_mysql.dll前的;去掉extension_dir=""途徑與否對(duì)的PHP鏈接mysql函數(shù)mysql_connect:啟動(dòng)MySQL鏈接$conn=@mysql_connect("localhost","root","")ordie("鏈接錯(cuò)誤");mysql_select_db:打開一種數(shù)據(jù)庫(kù)mysql_select_db("ww",$conn);注意:@和ordie隱藏錯(cuò)誤和條件顯示mysql_connect("主機(jī)","顧客名","密碼")mysql_select_db("打開數(shù)據(jù)庫(kù)",連接標(biāo)記符);如果不特別聲明連接標(biāo)記符,則默認(rèn)為是上一次打開的連接。2、如何去執(zhí)行一種SQL語(yǔ)句mysql_query(SQL語(yǔ)句,連接標(biāo)記符);闡明:mysql_query用來(lái)根據(jù)連接標(biāo)記符向該數(shù)據(jù)庫(kù)服務(wù)器的目前數(shù)據(jù)庫(kù)發(fā)送查詢,如果連接標(biāo)記符默認(rèn),則默認(rèn)為是上一次打開的連接。返回值:成功后返回一種成果標(biāo)記符,失敗時(shí)返回false。$sql="INSERTINTOtest(id,name,regdate)values('','huafan',now())";mysql_query($sql,$conn);3、兩種查詢函數(shù)array/row區(qū)別格式:mysql_fetch_row(result);闡明:mysql_fetch_row用來(lái)查詢成果的一行保存至數(shù)組,該數(shù)組下標(biāo)從0開始,每一種數(shù)組元素對(duì)應(yīng)一種域。通過(guò)循環(huán),能夠?qū)⒉樵兂晒揩@得。$sql="SELECT*FROM`test`";$query=mysql_query($sql,$conn);$row=mysql_fetch_row($query);print_r($row);格式:mysql_fetch_array(result);闡明:mysql_fetch_array和mysql_fetch_row功效基本相似,只但是它除了能夠用從0開始的偏移量作索引,還能夠用域名作索引。值返回下一行的全部域值,并將其保存至一種數(shù)組中,沒(méi)有行時(shí)返回false。$sql="SELECT*FROM`test`";$query=mysql_query($sql,$conn);$row=mysql_fetch_array($query);echo$row['name'];輸出全部?jī)?nèi)容:$sql="SELECT*FROM`test`";$query=mysql_query($sql,$conn);while($row=mysql_fetch_array($query)){echo$row['name']."".$row['regdate']."<br>"."<hr>";}mysql_query("setnames'GBK'");解決中文亂碼$conn=@mysql_connect("localhost","root","")ordie("鏈接錯(cuò)誤");mysql_select_db("ww",$conn);mysql_query("setnames'GBK'");$sql="SELECT*FROM`test`";$query=mysql_query($sql,$conn);while($row=mysql_fetch_array($query)){echo$row['name']."".$row['regdate']."<br>"."<hr>";}4、其它慣用Mysql函數(shù)介紹mysql_num_rows用于計(jì)算查詢成果中所得行的數(shù)目echomysql_num_rows($query);mysql_insert_id傳回最后一次使用INSERT指令的ID。mysql_tablename獲得數(shù)據(jù)庫(kù)名稱mysql_error返回錯(cuò)誤信息mysql_close關(guān)閉MySQL鏈接學(xué)習(xí)制作PHP+MYSQL留言板1、設(shè)計(jì)一種完整程序的流程2、HTML部分表單標(biāo)簽的使用<formaction=""method="GET"><inputtype="text"size=10name="user"/><inputtype="text"size=20name="title"/><textareaname="content"></textarea><inputtype="submit"name="submit"/></form>3、PHP里的頁(yè)面互相調(diào)用require()與require_once()普通放在PHP程序的最前面,PHP程序在執(zhí)行前,就會(huì)先讀入require所指定引入的文獻(xiàn),如果出現(xiàn)錯(cuò)誤是致命的。include()與include_once()能夠放在PHP程序的任何一種位置,PHP程序在執(zhí)行屆時(shí),才會(huì)先讀入include所指定引入的文獻(xiàn),如果出現(xiàn)錯(cuò)誤將會(huì)提示。require('con.php');include('con.php');PHP接受參數(shù)的幾個(gè)方式PHP5在默認(rèn)的狀況下接受參數(shù)是需要使用$_GET['value'];$_POST['value'];還能夠在PHP.ini文獻(xiàn)中的將register_globals=Off改register_globals=on能夠直接使用,$value的值作業(yè)、討論題、思考題:制作PHP+MYSQL留言板課后小結(jié):本節(jié)課解說(shuō)了PHP數(shù)組的創(chuàng)立修改,用foreach遍歷數(shù)組,PHP函數(shù)的應(yīng)用和如何自定義函數(shù),Mysql的介紹和創(chuàng)立新的數(shù)據(jù)庫(kù)。創(chuàng)立一種數(shù)據(jù)庫(kù)命令:CREATETABLE,刪除一種數(shù)據(jù)庫(kù)命令:DROPTABLE,修改一種字段名稱:RENAMETABLE`原字段`TO`新字段`;刪除一種字段:ALTERTABLE`表`DROP`原字段`,插入一種字段:ALTERTABLE`表`ADD`新字段`…AFTER`原字段。介紹了SELECT查詢語(yǔ)句和條件語(yǔ)句,排序,分組,指針查詢,計(jì)算;Insert插入語(yǔ)句,Update更新語(yǔ)句,Delete刪除語(yǔ)句,PHP與mysql建立鏈接:$conn=@mysql_connect("localhost","root","")ordie("鏈接錯(cuò)誤");,如何去執(zhí)行一種SQL語(yǔ)句:mysql_query(SQL語(yǔ)句,連接標(biāo)記符);,兩種查詢函數(shù)array/row區(qū)別,其它慣用Mysql函數(shù)介紹如mysql_num_rows用于計(jì)算查詢成果中所得行的數(shù)目echomysql_num_rows($query);mysql_insert_id傳回最后一次使用INSERT指令的ID。mysql_tablename獲得數(shù)據(jù)庫(kù)名稱,mysql_error返回錯(cuò)誤信息,mysql_close關(guān)閉MySQL鏈接?!禔SP動(dòng)態(tài)網(wǎng)站開發(fā)》課程教案授課班級(jí)15級(jí)淘寶班課次3授課方式理論課討論課□實(shí)驗(yàn)課□習(xí)題課□其它□學(xué)時(shí)安排3授課題目(教學(xué)章、節(jié)或主題):制作PHP+MYSQL留言板教學(xué)目的、規(guī)定(分掌握、熟悉、理解三個(gè)層次):理解設(shè)計(jì)一種完整程序的流程。掌握HTML部分表單標(biāo)簽的使用與PHP里的頁(yè)面互相調(diào)用掌握PHP接受參數(shù)的幾個(gè)方式及提交表單Javascript驗(yàn)證教學(xué)重點(diǎn)及難點(diǎn):PHP接受參數(shù)的幾個(gè)方式及提交表單Javascript驗(yàn)證。教學(xué)基本內(nèi)容及辦法手段實(shí)例操作我們的留言板創(chuàng)立表:CREATETABLE`message`(`id`tinyint(1)NOTNULLauto_increment,`user`varchar(25)NOTNULL,`title`varchar(50)NOTNULL,`content`tinytextNOTNULL,`lastdate`dateNOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=gbkAUTO_INCREMENT=1con.php//數(shù)據(jù)庫(kù)配備$conn=@mysql_connect("localhost","root","")ordie("連接失敗");mysql_select_db("liuyanban",$conn);mysql_query("setnames'GBK'");add.php//操作文獻(xiàn)include("conn.php");if($_POST['submit']){$sql="insertintomessage(id,user,title,content,lastdate)"."values('','$_POST[user]','$_POST[title]','$_POST[content]',now())";mysql_query($sql);echo"發(fā)表成功";}?><formaction="add.php"method="post">顧客:<inputtype="text"size="10"name="user"/><br>標(biāo)題:<inputtype="text"name="title"/><br>內(nèi)容:<textareaname="content"></textarea><br><inputtype="submit"name="submit"value="公布留言"/></form>list.php//列表文獻(xiàn)<?phpinclude("conn.php");?><tablewidth=500border="0"align="center"cellpadding="5"cellspacing="1"bgcolor="#add3ef"><?php$sql="select*frommessage";$query=mysql_query($sql);while($row=mysql_fetch_array($query)){?><trbgcolor="#eff3ff"><td>標(biāo)題:<?=$row['title']?>顧客:<?=$row['user']?></td></tr><trbgColor="#ffffff"><td>內(nèi)容:<?=$row['content']?></td></tr><?}?></table>Head文獻(xiàn)<head><b><ahref="add.php">添加留言</a>|<ahref="list.php">瀏覽留言</a>|<ahref="login.php">登錄</a></b>5、提交表單Javascript驗(yàn)證6、str_replace替代函數(shù)str_replace(被替代的值,替代的值,被替代的內(nèi)容);$content="asfdasfsafasfasdasfasfafasfasfafasfas";echo$content;輸出:asfdasfsafasfasdasfasfafasfasfafasfas如果:$content="asfdasfsafasfasdasfasfafasfasfafasfas";echohtmtocode($content);functionhtmtocode($content){ $content=str_replace("\n","<br>",str_replace(""," ",$content)); return$content;}7、htmlspecialchars格式化html重要功效是將HTML格式化,避免在輸出html時(shí)被瀏覽器執(zhí)行8、md5加密函數(shù)md5(加密對(duì)象)9、COOKIE的使用和登陸作業(yè)、討論題、思考題:設(shè)計(jì)一種留言板課后小結(jié):本節(jié)介紹了設(shè)計(jì)一種完整程序的流程,HTML部分表單標(biāo)簽的使用,PHP里的頁(yè)面互相調(diào)用,接受參數(shù)的幾個(gè)方式,提交表單Javascript驗(yàn)證,str_replace替代函數(shù)。解說(shuō)了htmlspecialchars格式化html,md5加密函數(shù)與COOKIE的使用和登陸。《ASP動(dòng)態(tài)網(wǎng)站開發(fā)》課程教案授課班級(jí)15級(jí)淘寶班課次4授課方式理論課討論課□實(shí)驗(yàn)課□習(xí)題課□其它□學(xué)時(shí)安排3授課題目(教學(xué)章、節(jié)或主題):PHP+MYSQL分頁(yè)原理與PHP上傳原理及應(yīng)用及文獻(xiàn)操作教學(xué)目的、規(guī)定(分掌握、熟悉、理解三個(gè)層次):理解SQL語(yǔ)句中的limit使用方法與學(xué)習(xí)分頁(yè)的一種公式。掌握FORM標(biāo)簽enctype屬性與$_FILES系統(tǒng)函數(shù)掌握move_uploaded_file函數(shù)與is_uploaded_file函數(shù)理解PHP部分文獻(xiàn)操作函數(shù)與unlink()rmdir()刪除函數(shù)教學(xué)重點(diǎn)及難點(diǎn):分頁(yè)公式與文獻(xiàn)上傳原理教學(xué)基本內(nèi)容及辦法手段1、SQL語(yǔ)句中的limit使用方法SELECT*FROMtable……limit開始位置,操作條數(shù)SELECT*FROMtable……limit0,20SELECT*FROMtable……limit10,202、學(xué)習(xí)分頁(yè)的一種公式(1)分頁(yè)原理所謂分頁(yè)顯示,也就是講數(shù)據(jù)庫(kù)中的成果集,一段一段顯示出來(lái)(2)需要的條件怎么分段,目前在第幾段(每頁(yè)有幾條,目前再第幾頁(yè))前10條統(tǒng)計(jì):select*fromtablelimit0,10第11至20條統(tǒng)計(jì):select*fromtablelimit10,10第21至30條統(tǒng)計(jì):select*fromtablelimit20,10(3)得到公式(目前頁(yè)數(shù)-1)X每頁(yè)條數(shù),每頁(yè)條數(shù)Select*fromtablelimit($1)*$PageSize,$PageSize3、parse_url()解析URL函數(shù)parse_url()是講URL解析成有固定鍵值的數(shù)組的函數(shù)$ua=parse_url("http://username:password@hostname/path?arg=value#anchor");print_r($ua);成果:Array([scheme]=>http//合同[host]=>hostname//域名[user]=>username//顧客名[pass]=>password//密碼[path]=>/path//途徑[query]=>arg=value//獲得的值[fragment]=>anchor//)4、$_SERVER["REQUEST_URI"]函數(shù)//除域名以外的值預(yù)定義服務(wù)器變量的一種,全部$_SERVER開頭的都叫做預(yù)定義的服務(wù)器變量REQUEST_URI的作用是獲得的目前URL,也就除域名外背面完整的地址途徑。目前頁(yè)為:/home.php?id=23&cid=22Echo$_SERVER["REQUEST_URI"]成果為:/home.php?id=23&cid=22簡(jiǎn)樸分頁(yè)$pagesize=5;$sql="select*frommessagelimit5,$pagesize";$query=mysql_query($sql);while($row=mysql_fetch_array($query)){echo"<hr><b>".$row['user']."|".$row['title'];}分頁(yè)實(shí)例/*分頁(yè)程序*/include("conn.php");include("head.php");$pagesize=10;//每頁(yè)需要顯示幾條信息$url=$_SERVER["REQUEST_URI"];//顯示文獻(xiàn)目錄$url=parse_url($url);//把地址分析出來(lái),分析成有固定鍵值的數(shù)組。//print_r($url);//http://localhost/liuyanban/fenye.php?id=2$url=$url['path'];//echo$url;取出翻頁(yè)的地址$numq=mysql_query("select*frommessage");//查詢出全部統(tǒng)計(jì)。$num=mysql_num_rows($numq);//統(tǒng)計(jì)總條數(shù)//echo$num;//查看成果if($_GET['page'])//對(duì)page的判斷 { $pageval=$_GET['page']; $page=($pageval-1)*$pagesize;//得出page的值 $page.=','; }if($num>$pagesize){ if($pageval<=1)$pageval=1; echo"共$num條"."<ahref=$url?page=".($pageval-1).">上一頁(yè)</a><ahref=$url?page=".($pageval+1).">下一頁(yè)</a>";}$sql="select*frommessagelimit$page$pagesize";$query=mysql_query($sql);while($row=mysql_fetch_array($query)){echo"<hr><b>".$row['user']."|".$row['title'];}PHP上傳原理及應(yīng)用1、FORM標(biāo)簽enctype屬性表單中enctype="multipart/form-data"的意思,是設(shè)立表單的MIME編碼。默認(rèn)狀況,這個(gè)編碼格式是application/x-www-form-urlencoded(通過(guò)瀏覽器傳遞文獻(xiàn)),不能用于文獻(xiàn)上傳;只有使用了multipart/form-data(能夠傳遞文獻(xiàn),文獻(xiàn)是二進(jìn)制編碼格式),才干完整的傳遞文獻(xiàn)數(shù)據(jù)。<formaction=""enctype="multipart/form-data"method="post"name="upform">上傳文獻(xiàn):<inputname="upfile"type="file"><inputtype="submit"value="上傳"></form>2、$_FILES系統(tǒng)函數(shù)//將文獻(xiàn)轉(zhuǎn)換為數(shù)組$_FILES['myFile']['name']客戶端文獻(xiàn)的原名稱。$_FILES['myFile']['type']文獻(xiàn)的MIME類型,例如"image/gif"。image/jpgimage/jpegimage/pngimage/pjpegimage/gifimage/bmpimage/x-pngapplication/x-zip-compressed

……$_FILES['myFile']['size']已上傳文獻(xiàn)的大小,單位為字節(jié)。$_FILES['myFile']['tmp_name']儲(chǔ)存的臨時(shí)文獻(xiàn)名,普通是系統(tǒng)默認(rèn)。存儲(chǔ)途徑$_FILES['myFile']['error']該文獻(xiàn)上傳有關(guān)的錯(cuò)誤代碼。0;文獻(xiàn)上傳成功。1;超出了文獻(xiàn)大小php.ini中。2;超出了文獻(xiàn)大小或MAX_FILE_SIZE選項(xiàng)指定的值。3;文獻(xiàn)只有部分被上傳。4;沒(méi)有文獻(xiàn)被上傳。5;上傳文獻(xiàn)大小為0。3、move_uploaded_file函數(shù)//上傳后移動(dòng)文獻(xiàn)到目的位置的函數(shù)move_uploaded_file(臨時(shí)文獻(xiàn),目的位置和文獻(xiàn)名);is_uploaded_file函數(shù)//判斷上傳MIME類型的文獻(xiàn)函數(shù)is_uploaded_file(MIME);上傳文獻(xiàn)件實(shí)例<?php//上傳文獻(xiàn)判斷if(is_uploaded_file($_FILES['upfile']['tmp_name'])){$upfile=$_FILES['upfile'];//print_r($_FILES['upfile']);測(cè)試成果$name=$upfile['name'];$type=$upfile['type'];$size=$upfile['size'];$tmp_name=$upfile['tmp_name'];$error=$upfile['error'];//echo$type;//測(cè)試輸出成果switch($type){ case'image/jpg':$ok=1;break; case'image/jpeg':$ok=1;break; case'image/gif':$ok=1;break; case'image/png':$ok=1;break; case'image/pjpeg':$ok=1;break;}if($ok&&$error==0){ move_uploaded_file($tmp_name,'up/'.$name); echo"上傳成功!";}}?><formaction=""enctype="multipart/form-data"method="post"name="upform">上傳文獻(xiàn):<inputname="upfile"type="file"><inputtype="submit"value="上傳"></form>文獻(xiàn)操作1、PHP部分文獻(xiàn)操作函數(shù)(fopen,fread,filesize,fwrite,fclose)(1)fopen打開文獻(xiàn)函數(shù)fopen(途徑和文獻(xiàn)名,打開方式);R-只讀W-寫入A-讀寫(2)fread讀取文獻(xiàn)內(nèi)容fread(打開的文獻(xiàn),結(jié)束位置);字節(jié)為單位(3)filesize讀取文獻(xiàn)大小,字節(jié)為計(jì)量單位filesize(途徑和文獻(xiàn)名);(4)fwrite寫入文獻(xiàn)內(nèi)容fwrite(途徑和文獻(xiàn)名,寫入的內(nèi)容);(5)fclose關(guān)閉打開的文獻(xiàn)fclose(途徑和文獻(xiàn)名);2、unlink()rmdir()刪除函數(shù)unlink()刪除文獻(xiàn)函數(shù):unlink(途徑和文獻(xiàn)名)rmdir()刪除目錄函數(shù):rmdir(途徑和目錄名)實(shí)例解說(shuō):建立一種模板文獻(xiàn)tmp.htm<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML3.2//EN"><html><head><metaname="generator"content="HTMLTidy,see"><title>標(biāo)題:{title}</title></head><body>此新聞的內(nèi)容:{content}</body></html>生成文獻(xiàn)wenjiancaozuo.php$fp=fopen("tmp.htm","r");//只讀打開模板$str=fread($fp,filesize("tmp.htm"));//讀取模板中的內(nèi)容分//echo$str;測(cè)試讀取成果$str=str_replace("{title}","新標(biāo)題",$str);$str=str_replace("{content}","新內(nèi)容",$str);//替代內(nèi)容fclose($fp);$handle=fopen('news.html','w');fwrite($handle,$str);fclose($handle);帶循環(huán)的生成批文獻(xiàn)$con=array(array('新聞標(biāo)題','新聞內(nèi)容'),array('新聞標(biāo)題2','新聞內(nèi)容2'),array('新聞標(biāo)題3','新聞內(nèi)容3'));foreach($conas$id=>$val){$title=$val[0];$content=$val[1];$path=$id.'.htm';$fp=fopen("tmp.htm","r");//只讀打開模板$str=fread($fp,filesize("tmp.htm"));//讀取模板中的內(nèi)容分//echo$str;測(cè)試讀取成果$str=str_replace("{title}","新標(biāo)題",$str);$str=str_replace("{content}","新內(nèi)容",$str);//替代內(nèi)容fclose($fp);$handle=fopen($path,'w');fwrite($handle,$str);fclose($handle);echo"生成成功";}刪除文獻(xiàn)unlink('1.htm');作業(yè)、討論題、思考題:制作一種留言板設(shè)計(jì)分頁(yè)與文獻(xiàn)上傳課后小結(jié):本節(jié)介紹了SQL語(yǔ)句中的limit使用方法與學(xué)習(xí)分頁(yè)的一種公式,parse_url()解析URL函數(shù),$_SERVER["REQUEST_URI"],F(xiàn)ORM標(biāo)簽enctype屬性,$_FILES系統(tǒng)函數(shù)解說(shuō)了文獻(xiàn)操作函數(shù)move_uploaded_file函數(shù),is_uploaded_file函數(shù),PHP部分文獻(xiàn)操作函數(shù)(fopen,fread,filesize,fwrite,fclose),unlink()rmdir()刪除函數(shù)?!禔SP動(dòng)態(tài)網(wǎng)站開發(fā)》課程教案授課班級(jí)15級(jí)淘寶班課次5授課方式理論課討論課□實(shí)驗(yàn)課□習(xí)題課□其它□學(xué)時(shí)安排3授課題目(教學(xué)章、節(jié)或主題):面對(duì)對(duì)象開發(fā)的學(xué)習(xí)(一)教學(xué)目的、規(guī)定(分掌握、熟悉、理解三個(gè)層次):理解什么是面對(duì)對(duì)象,什么是類的概念掌握使用CLASS創(chuàng)立一種類及類的組員屬性和組員辦法,對(duì)象中的$this核心字掌握使用new函數(shù)對(duì)象實(shí)例化,創(chuàng)立一種和多個(gè)對(duì)象掌握初始化對(duì)象__construct()和析構(gòu)函數(shù)__destruct()理解封裝關(guān)鍵字:public,protected,private及封裝有關(guān)函數(shù):__set(),__get()熟悉繼承核心字:extends,PHP繼承的規(guī)則,基類辦法重載和父類辦法訪問(wèn)掌握抽象辦法和抽象類的定義,抽象類和辦法使用規(guī)則教學(xué)重點(diǎn)及難點(diǎn):CLASS創(chuàng)立一種類及類的組員屬性和組員辦法,對(duì)象中的$this核心字與new函數(shù)對(duì)象實(shí)例化,創(chuàng)立一種和多個(gè)對(duì)象。初始化對(duì)象__construct()和析構(gòu)函數(shù)__destruct()。教學(xué)基本內(nèi)容及辦法手段1、什么是面對(duì)對(duì)象,什么是類起初,“面對(duì)對(duì)象”是專指在程序設(shè)計(jì)中采用封裝、繼承、抽象等設(shè)計(jì)辦法??墒牵@個(gè)定義顯然不能再適合現(xiàn)在狀況。面對(duì)對(duì)象的思想已經(jīng)涉及到軟件開發(fā)的各個(gè)方面。如,面對(duì)對(duì)象的分析(OOA,ObjectOrientedAnalysis),面對(duì)對(duì)象的設(shè)計(jì)(OOD,ObjectOrientedDesign)、以及我們經(jīng)常說(shuō)的面對(duì)對(duì)象的編程實(shí)現(xiàn)(OOP,ObjectOrientedProgram)。傳統(tǒng)開發(fā)辦法存在問(wèn)題1.軟件重用性差,2.軟件可維護(hù)性差,3.無(wú)較好的擴(kuò)展性面對(duì)對(duì)象的要素1.抽象性,2.封裝性,3.共享性,4.強(qiáng)調(diào)對(duì)象構(gòu)造而不是程序構(gòu)造面對(duì)對(duì)象的三大特點(diǎn)(封裝,繼承,多態(tài))缺一不可什么是類我們能夠理解成一種功效集合菜單,我們通過(guò)類來(lái)實(shí)現(xiàn)生成我們的辦法2、使用CLASS創(chuàng)立一種類class辦法名{……}3、類的組員屬性和組員辦法classMyPc{public$name;var$price;functionvod(){return"PHP100視頻教程";}}4、使用new函數(shù)對(duì)象實(shí)例化new對(duì)象名(參數(shù))例:classMyPc{ var$key;//public$key等價(jià) public$name; functionvod() { echo"面對(duì)對(duì)象學(xué)習(xí)"; }}$pc1=newMyPc();$pc1->key="php";//訪問(wèn)組員屬性echo$pc->key;$pc1->vod();//調(diào)用組員辦法5、創(chuàng)立一種和多個(gè)對(duì)象創(chuàng)立一種和多個(gè)對(duì)象我們只需要多次使用new函數(shù),進(jìn)行對(duì)類的實(shí)例化類對(duì)象classMyPc{public$name;public$price;functionvod(){return"PHP學(xué)習(xí)教材";}……}$pc1=newMyPc();$pc2=newMyPc();$pc3=newMyPc();6、對(duì)象中的$this核心字$this核心字是用來(lái)訪問(wèn)目前對(duì)象中的對(duì)象屬性和對(duì)象辦法的系統(tǒng)變量classMyPc{public$name;public$price;functionvod(){$this->name;}……$this->vod();……}我們能夠理解為$this是在對(duì)象中特殊的一種使用構(gòu)造函數(shù)和變量的辦法。$this僅能在目前對(duì)象中使用classMyPc{ public$name; functionvod() { echo$this->name.",播放電影"."<br>"; } functiongame() { echo$this->vod()."玩游戲"; }}$pc1=newMyPc();$pc1->name="家用電腦!";//訪問(wèn)組員屬性$pc1->vod();//調(diào)用組員辦法$pc2=newMyPc();$pc2->name="公司電腦!";$pc2->game()7、初始化對(duì)象__construct()我們?cè)趧?chuàng)立一種類有時(shí)候需要初始化某些操作,這個(gè)時(shí)候我們需要使用初始化函數(shù),在PHP5中有兩種初始化辦法。1、原PHP4中我們需要建立一種與類名稱相似的一種對(duì)象辦法:若類改名字則內(nèi)部初始化,也要改名字。2、在PHP5中繼承了PHP4但為了更好的針對(duì)面對(duì)對(duì)象開發(fā)有了固定函數(shù)。classMyPc{functionMyPc(){初始化操作}}classMyPc{function__construct(){初始化操作}}classMyPc{ public$name;public$type; function__construct($name,$type) { $this->name=$name; $this->type=$type; } functionvod() { echo$this->name.$this->type.",播放電影"."<br>"; } functiongame() { echo$this->vod()."玩游戲"; }}$pc1=newMyPc("家用電腦","臺(tái)式機(jī)");$pc1->vod();//調(diào)用組員辦法$pc2=newMyPc("公司電腦","筆記本");$pc2->game();8、析構(gòu)函數(shù)__destruct()//能夠在對(duì)象釋放時(shí)自動(dòng)被調(diào)用的辦法被稱為析構(gòu)函數(shù)。PHP4支持析構(gòu)函數(shù),通過(guò)登錄在PHP運(yùn)行終止時(shí)用register_shutdown_function()調(diào)用的函數(shù),只有類似的實(shí)施辦法。PHP5正式支持析構(gòu)函數(shù),能夠在類中指定對(duì)象釋放時(shí)的動(dòng)作——能夠理解為垃圾回收機(jī)制。當(dāng)對(duì)象內(nèi)部的操作執(zhí)行完畢的時(shí)候,__destruct()被調(diào)用,然后對(duì)象所使用的內(nèi)存被釋放出來(lái)。規(guī)則:后進(jìn)先出classMyPc{……function__destruct(){……}}function__destruct(){ echo"<br>====".$this->name;}輸出成果====公司電腦

====家用電腦提前釋放:$pc1=null;9、類的封裝和應(yīng)用封裝核心字:public,protected,private封裝是把某些有關(guān)的屬性和行為隱藏起來(lái),從而得到保護(hù)和安全。public表達(dá)全局,類內(nèi)部外部子類都能夠訪問(wèn);protected表達(dá)受保護(hù)的,只有本類或子類或父類中能夠訪問(wèn);private表達(dá)私有的,只有本類內(nèi)部能夠使用;classMyPc{public$name;//全局屬性,任何位置都能夠引用protected$price;//保護(hù)屬性,只有本類或子類或父類中能夠訪問(wèn)privatefunctionvod()//私有屬性,只有本類內(nèi)部能夠使用{$this->name;}……}封裝有關(guān)函數(shù):__set(),__get()某些特定操作的時(shí)候需要訪問(wèn)和賦值封裝的類型,這個(gè)時(shí)候我們就需要其它的函數(shù)幫我們完畢這些操作,PHP為我們提供了個(gè)辦法名:__set(),__get()__set()獲得目前類中封裝過(guò)私有屬性或者辦法重新執(zhí)行或賦值操作__set($Name,$Value)__get()獲得目前類中封裝過(guò)屬性或辦法并轉(zhuǎn)換成共有屬性實(shí)例解說(shuō)classMyPc{ private$name; function__construct($name='') { return $this->name=$name; } function__get($name)//間接訪問(wèn)私有變量 { return$this->name."========";//能夠變化變量的輸出方式}function__set($n,$v)//設(shè)立私有變量的值{ if($v=="zzh"){$this->$n=$v;}}}$pc1=newMyPc("我的電腦");$pc1->name="fdsgdsgdsg";echo$pc1->name;10、類的繼承和應(yīng)用繼承核心字:extendsPHP類的繼承,我們能夠理解成共享被繼承類的內(nèi)容。PHP中使用extends單一繼承的辦法!被繼承的類我們叫做父類(基類)繼承者成為子類(派生類)。PHP繼承的規(guī)則依次被繼承,class3擁有class1、class2因此功效和屬性,避免辦法和屬性重名。classroot{ functiondayin()//能夠用封裝類 protectedfunctiondayin() { return "rootprint<br>"; }} classsonextendsroot{ functiondayin2() {return "sonprint<br>";//return $this->dayin()."sonprint<br>"; }}$p=newson();echo$p->dayin();基類辦法重載和父類辦法訪問(wèn)由于屬于向下繼承的原理,基類不能使用派生類里內(nèi)容,這個(gè)時(shí)基類的某些辦法不能完畢我們的某些派生類的功效,我們就能夠進(jìn)行辦法重載避免了,新建辦法帶來(lái)的混亂。辦法重載我們也能夠理解辦法覆蓋,在派生類里使用與基類辦法重名的辦法名稱執(zhí)行重載,重載時(shí)我們需要調(diào)用原始基類內(nèi)容,再增加新內(nèi)容,我們能夠使用基類名::辦法名稱 classsonextendsroot{ functiondayin() { return root::dayin()."sonprint<br>"; }11、類的抽象辦法和類抽象核心字:abstract抽象就是無(wú)法確切的闡明,但又有一定的概念或者名稱,在PHP中聲明一種抽象類或者辦法我們需要使用adstract核心字。抽象辦法和抽象類的定義一種類中最少有一種辦法是抽象的,我們稱之為抽象類。因此如果定義抽象類首先定義抽象辦法。abstractclassclass1{abstractfunctionfun1();……}1、類中最少有一種抽象辦法。2、抽象辦法不允許有{}。3、抽象辦法前面必須要加abstract。抽象類和辦法使用規(guī)則抽象類的幾個(gè)特點(diǎn):1、不能被實(shí)例化,只能被繼承。2、繼承的派生類當(dāng)中要把因此抽象辦法重載才干實(shí)例化。不可實(shí)例化可實(shí)例化abstractclasscl1{abstractfunctionfun1();……}classcl2extendscl1{//繼承functionfun1(){//重載全部抽象辦法{}……}abstractclasscl1{ abstractfunctionfun1(); abstractfunctionfun2(); abstractfunctionfun3(); functionok() {}}classcl2extendscl1{ functionfun1()//重載抽象辦法{echo"第一種";} functionfun2() {echo"第二個(gè)";}functionfun3(){echo"第三個(gè)";}}$p=newcl2();$p->fun1();作業(yè)、討論題、思考題:建立一種類,定義三個(gè)屬性和三個(gè)辦法課后小結(jié):本節(jié)課介紹了什么是面對(duì)對(duì)象,什么是類,使用CLASS創(chuàng)立一種類,類的組員屬性和組員辦法,使用new函數(shù)對(duì)象實(shí)例化。創(chuàng)立一種和多個(gè)對(duì)象,對(duì)象中的$this核心字,初始化對(duì)象__construct(),析構(gòu)函數(shù)__destruct()。解說(shuō)了封裝關(guān)鍵字:public,protected,private,封裝有關(guān)函數(shù):__set(),__get(),繼承核心字:extends,PHP繼承的規(guī)則,基類辦法重載和父類辦法訪問(wèn),抽象核心字:abstract,抽象辦法和抽象類的定義,抽象類和辦法使用規(guī)則。

《ASP動(dòng)態(tài)網(wǎng)站開發(fā)》課程教案授課班級(jí)15級(jí)淘寶班課次6授課方式理論課討論課□實(shí)驗(yàn)課□習(xí)題課□其它□學(xué)時(shí)安排3授課題目(教學(xué)章、節(jié)或主題):PHP面對(duì)對(duì)象開發(fā)的學(xué)習(xí)(二)與制作自己的PHP+MYSQL的類教學(xué)目的、規(guī)定(分掌握、熟悉、理解三個(gè)層次):理解核心字:final,self,static,const,interface,implements,instanceof。掌握多態(tài)的介紹與優(yōu)勢(shì)、多態(tài)的簡(jiǎn)樸應(yīng)用。熟悉對(duì)象描述的配備,對(duì)象辦法的異常解決及克隆對(duì)象的應(yīng)用、自動(dòng)載入對(duì)象的辦法。熟悉慣用MYSQL函數(shù)、使用類封裝慣用SQL操作,簡(jiǎn)化代碼及認(rèn)識(shí)面對(duì)對(duì)象在開發(fā)中的重要作用。教學(xué)重點(diǎn)及難點(diǎn):MYSQL函數(shù)、使用類封裝慣用SQL操作,簡(jiǎn)化代碼及認(rèn)識(shí)面對(duì)對(duì)象在開發(fā)中的重要作用與核心字的應(yīng)用。教學(xué)基本內(nèi)容及辦法手段類中慣用核心字1、核心字:final用來(lái)定義類和辦法的一種重要核心字,當(dāng)定義類的時(shí)候該類將不能被繼承,當(dāng)用來(lái)定義辦法的時(shí)候該辦法將不能被重載finalclassclass1{//該類將不能被繼承……finalfunctionfun1(){ //該辦法將不能被重載……}……}實(shí)例解說(shuō)finalclassMyPc{//加上final后就不能被繼承 public$name='我的電腦'; finalfunctionpower()//加上final后就不能重載 { echo$this->name.",電腦打開中"; }}classmyextendsMyPc{ // functionpower(){//重載抽象辦法//echoMyPc::power()."***************";//}}$p=newmy();$p->power();2、核心字:self用來(lái)用類訪問(wèn)目前類中的內(nèi)容的核心字,類似與$this核心字,但$this是需要類實(shí)例化后來(lái)才能夠使用,self能夠直接訪問(wèn)目前類中的內(nèi)部組員self::類內(nèi)部組員(屬性或者辦法)等價(jià)與類名::類內(nèi)部組員(屬性或者辦法)注意:由于沒(méi)有實(shí)例化類訪問(wèn)內(nèi)部屬性或者辦法是沒(méi)故意義的,因此self普通用來(lái)訪問(wèn)類中的:靜態(tài)組員,常量,或者其它定義內(nèi)容。3、核心字:static用來(lái)定義類的靜態(tài)屬性或辦法,能夠在類未被實(shí)例化時(shí)使用,靜態(tài)屬性單獨(dú)占用內(nèi)存而不會(huì)因創(chuàng)立多個(gè)對(duì)象時(shí)而造成同樣的辦法或者屬性重復(fù)占用。classclass1{static$name;staticfunctionfun1(){//靜態(tài)辦法內(nèi)部嚴(yán)禁出現(xiàn)非靜態(tài)內(nèi)容……}

}類內(nèi)部訪問(wèn)靜態(tài)組員類名稱::靜態(tài)組員self::靜態(tài)組員類外部訪問(wèn)靜態(tài)組員類名稱::靜態(tài)組員實(shí)例解說(shuō)finalclassMyPc{//加上final后就不能被繼承static$name='我的電腦'; staticfunctionpower()//靜態(tài)辦法,使用$this核心字會(huì)出錯(cuò) { //echo$this->name.",電腦打開中";this核心字就不能使用 echoself::$name.",電腦打開中";//用self辦法訪問(wèn)靜態(tài)屬性。 } }//echoMyPc::$name;//靜態(tài)屬性能夠被訪問(wèn)輸出//MyPc::$name="你的電腦";//靜態(tài)屬性能夠被訪問(wèn)修改$p=newMyPc();$p->power();4、核心字:const用來(lái)定義類中的常量,類似PHP外部定義常量的核心字define();Const只能修飾類當(dāng)中的組員屬性!classclass1{constNAME;functionfun1(){……}

}實(shí)例解說(shuō)finalclassMyPc{constNAME='我的電腦'; staticfunctionpower() { echoself::NAME.",電腦打開中"; } }$p=newMyPc();$p->power();注意事項(xiàng):1、建議大寫常量2、常量不使用$符號(hào)類中接口的應(yīng)用接口的介紹與創(chuàng)立核心字:interface接口:一種組員屬性全部為抽象的特殊抽象類,在程序中同為規(guī)范的作用。抽象類1、類中最少有一種抽象辦法2、抽象辦法前需加abstract接口1、類中全部為抽象辦法2、抽象辦法前不用加abstract3、接口抽象辦法屬性為public4、組員屬性必須為常量共同點(diǎn):1、本身都不能被實(shí)例化,必須被繼承或者引用。2、繼承或者引用后,需要把全部抽象辦法重載方可使用。接口有自己的創(chuàng)立核心字:interface與普通類的創(chuàng)立類似interfacedemo{//聲明接口類constNAME="名字";//對(duì)象屬性必須為常量functionFun1();functionFun2();//對(duì)象辦法全部為抽象辦法,前面不必加abstract}實(shí)例解說(shuō)interfacedemo{ constNAME="名稱";//聲明一種變量試試 functionfun1();//前加一種abstract試試,建一種普通的辦法試試 }2、接口的引用與規(guī)范核心字:implements接口引用區(qū)別與之前我們的學(xué)的類繼承核心字extends,繼承只能是單一性,而接口能夠使用核心字:implements多個(gè)引用并用逗號(hào),分開。設(shè)已有接口demo,demo2,demo3父類root1、普通類引用接口例子:classmypcimplementsdemo,demo2,demo3{……}2、抽象類引用接口例子:abstractclassmypcimplementsdemo,demo2,demo3{……}3、繼承父類引用接口并存例子:classmypcextendsrootimplementsdemo,demo2,demo3{……}//先繼承后接口,單繼承多接口4、接口與接口繼承:interfacedemo3extendsdemo{……}類中多態(tài)的應(yīng)用1、多態(tài)的介紹與優(yōu)勢(shì)介紹:多態(tài)性是繼抽象和繼承后,面對(duì)對(duì)象語(yǔ)言的第三個(gè)特性。從字面上理解,多態(tài)的意思是“多個(gè)形態(tài)”,簡(jiǎn)樸來(lái)說(shuō),多態(tài)是含有體現(xiàn)多個(gè)形態(tài)的能力的特性,在OO中是指“語(yǔ)言含有根據(jù)對(duì)象的類型以不同方式解決。優(yōu)勢(shì):OOP的模式并不僅僅是把諸多函數(shù)和功效集合起來(lái),目的而是使用類,繼承,多態(tài)的方式描述我們生活中的一種狀況。從而使得我們的代碼更含有“物”的意義。協(xié)助我們減少某些重復(fù)性的代碼和條件語(yǔ)句的判斷。2、運(yùn)算符:instanceofPHP一種類型運(yùn)算符。instanceof用來(lái)測(cè)定一種給定的對(duì)象與否來(lái)自指定的對(duì)象類。classA{}classB{}$thing=newA;if($thinginstanceofA){//判斷變量$thing與否來(lái)自類Aecho'A';}if($thinginstanceofB){echo'B';}3、多態(tài)的簡(jiǎn)樸應(yīng)用interfacemyusb{ functiontype(); functionalert();}classzipimplementsmyusb{ functiontype(){ echo"2.0"; } functionalert() {echo"正在檢查————U盤驅(qū)動(dòng)";}}classmp3implementsmyusb{ functiontype(){ echo"1.0"; } functionalert() {echo"正在檢查————Mp3盤驅(qū)動(dòng)";}}classmypc{ functionpcusb($what) { $what->type()."<br>"; $what->alert(); } }$p=newmypc();$zip=newzip();$mp3=newmp3();$p->pcusb($mp3);//插上不同的設(shè)備,就有不同的輸出總結(jié)篇對(duì)象描述的配備辦法名__tostring()我們能夠直接打印對(duì)象句柄,從而獲得該辦法的基本信息或其它內(nèi)容。classMy{function__tostring(){echo"我所要顯示的內(nèi)容";}}$p=newMy();echo$p;輸出成果:我所要顯示的內(nèi)容2、對(duì)象辦法的異常解決辦法名__call($funname,$arr_value)調(diào)用某些不存在的對(duì)象辦法的異常解決,使程序繼續(xù)正常運(yùn)行。classMy{function__call($n,$v){echo"錯(cuò)誤的辦法名".$n;echo"錯(cuò)誤的參數(shù)".Print_r($v);//由于參數(shù)會(huì)有多個(gè)所要用數(shù)組的方式保存}//打印的時(shí)候也要就用print_r輸出。}克隆對(duì)象的應(yīng)用辦法名__clone()核

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論