![php動態(tài)網(wǎng)站開發(fā)教案_第1頁](http://file4.renrendoc.com/view/dd459a0304c8e7d0ac2eca668f47937c/dd459a0304c8e7d0ac2eca668f47937c1.gif)
![php動態(tài)網(wǎng)站開發(fā)教案_第2頁](http://file4.renrendoc.com/view/dd459a0304c8e7d0ac2eca668f47937c/dd459a0304c8e7d0ac2eca668f47937c2.gif)
![php動態(tài)網(wǎng)站開發(fā)教案_第3頁](http://file4.renrendoc.com/view/dd459a0304c8e7d0ac2eca668f47937c/dd459a0304c8e7d0ac2eca668f47937c3.gif)
![php動態(tài)網(wǎng)站開發(fā)教案_第4頁](http://file4.renrendoc.com/view/dd459a0304c8e7d0ac2eca668f47937c/dd459a0304c8e7d0ac2eca668f47937c4.gif)
![php動態(tài)網(wǎng)站開發(fā)教案_第5頁](http://file4.renrendoc.com/view/dd459a0304c8e7d0ac2eca668f47937c/dd459a0304c8e7d0ac2eca668f47937c5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
《PHP動態(tài)網(wǎng)站開發(fā)》教案2016~2017學年第2學期二○一七年二月
《ASP動態(tài)網(wǎng)站開發(fā)》課程教案授課班級15級淘寶班課次1授課方式理論課?討論課□實驗課□習題課□其他□課時安排3授課題目(教學章、節(jié)或主題):PHP環(huán)境配置、數(shù)據(jù)類型常用PHP運算類型、PHP條件、循環(huán)語句的介紹與應用教學目的、要求(分掌握、熟悉、了解三個層次):了解PHP環(huán)境的配置,wamp環(huán)境的設置。掌握PHP的數(shù)據(jù)類型及其數(shù)據(jù)的運算規(guī)則。掌握PHP的條件語句、循環(huán)語句的用法及語法規(guī)則。教學重點及難點:動態(tài)網(wǎng)站的環(huán)境配置與PHP的條件語句、循環(huán)語句的用法及語法規(guī)則。教學基本內(nèi)容及方法手段PHP環(huán)境搭配和代碼調(diào)試1、PHP的優(yōu)勢和背景PHP是能讓你生成動態(tài)網(wǎng)頁的工具之一。PHP代表:超文本預處理器(PHP:HypertextPreprocessor)。PHP是完全免費的,不用花錢,你可以從PHP官方站點()自由下載。你不必把頭埋進100多頁的文檔中努力學習才可以寫出一個象樣的程序。只要了解一些基本的語法和語言特色,你就可以開始你的PHP編碼之旅了。如果更好的學習建議可以先看看些HTML和SQL的基礎。2、PHP環(huán)境的搭配所需的工具:WampServer5集成環(huán)境Wamp5是Apache+PHP+Mysql在Windows下的集成環(huán)境,擁有簡單的圖形和SQLiteManager1.2.0滿了大部分PHPer的需求…介紹一下wamp的虛擬目錄、服務圖標的顯示、環(huán)境測試3、PHP常用工具和數(shù)據(jù)庫常用工具PHP開發(fā)工具:ZendStodio,PHPedit,EditPlus2,easyeclipse,DW等MYSQL工具:MYSQLAdministrator4、書寫和調(diào)試簡單的PHP代碼從語法上看,PHP語言近似于C語言??梢哉f,PHP是借鑒C語言的語法特征,由C語言改進而來的。我們可以混合編寫PHP代碼和HTML代碼,不僅可以將PHP腳本嵌入到HTML文件中,我們甚至還可以把HTML標簽也嵌入在PHP腳本里。以下是你可以采用的幾種方法。你可以選用其中一種你最適合的并且就這樣堅持這種方法!從HTML中分離以下是可以使用的方法:
<?...?>短標簽模式
<?php...?>標準模式
<scriptlanguage="php">...</script>類似于javascript模式
<%...%>修改模式,也可以支持在PHP中用“;”來分隔語句。那些從HTML中分離出來的標志也表示語句的結束。注釋PHP支持C,C和Unix風格的注釋方式:/*C,C風格多行注釋*/
//C風格單行注釋
#Unix風格單行注釋例子:<?phpecho"HelloWorld!";或phpinfo();
?>5、如何處理簡單的PHP錯誤1、你要把PHP.ini里的display_errors?=?On才可以顯示錯誤位置2、習慣使用echo或者print打印,每一步輸出看看結果是否正確。3、學會使用注釋來屏蔽符號來調(diào)試//………./*…………*/#4、要懂得看錯誤信息錯誤的顯示信息的行數(shù)及什么錯位置。PHP的數(shù)據(jù)類型源碼調(diào)試1、PHP基本語法和數(shù)據(jù)類型(1)、PHP基本語法:1、htm和php混編<fontcolor=red>我好</font>2、一個語句以;(分號結束,英文半角)3、如何定義一個變量,和變量的使用$abc=9;//以$開始,以A-Z或a-zEcho$abc;(2)、PHP數(shù)據(jù)運算類型四種標量類型: boolean(布爾型)理解為真假型$bo=TRUE;$bo=FALSE;//賦值為0時為假,大于0為真 integer(整型)$bo=1;$bo=-12; float(浮點型,也作“double”)理解為小數(shù)型$bo=1.001;$bo=3.1415926; string(字符串)$bo=“這段字符串orENWord”;//雙引號支持轉義字符,單引號不支持。兩種復合類型: array(數(shù)組)$bo=array(1,2,3,4);$bo=array(“A”=>1,“B”=>2); object(對象)源碼調(diào)試1、解壓源碼到網(wǎng)站目錄2、按照數(shù)據(jù)庫3、調(diào)試成功2、學習一個PHP源碼調(diào)試(discuz論壇)常用PHP運算類型介紹與應用1、算術運算//理解為數(shù)學運算例:5*6-122*(28+1)注:算術運算遵循數(shù)學運算規(guī)則:從左到右,先算乘除后算加減,遇到括號先算括號內(nèi).2、賦值運算//把一個值寫入一個變量例:$a=1;$a+=2;$a*=3;注:把右邊的值賦予左的變量。3、比較運算/用來確定兩個數(shù)之間的關系例:1==23!=25<3"ok"=="ok"1==='1'//值相等且類型相同,用echo輸出時真為1,假不輸出。注:比較運算得到的值為布爾值4、邏輯運算//先將比較的兩邊轉換成布爾類型,再執(zhí)行他們的關系例:1&&10or11xor1!$a注:邏輯運算得到的值為布爾值5、遞增遞減運算//只操作變量的一種運算例:$a++//$a=$a+1++$a$a--//$a=$a-1--$aPHP條件語句的介紹與應用if條件語句程序中最常見的,大部分語言中都存在的一種條件語句,在開發(fā)中起著至關重要的作用,格式如下:if…else…if…else…if…elseif…if(expr)echoTRUEelseechoFALSEif(expr){echoTRUE}else{echoFALSE}if(expr){echoTRUE}elseif(expr){echoCON}else{echoFALSE}2、switch條件語句在多個條件當中使用Switch更加精巧,格式如下:switch($i){case0:echo"輸出0";break;case1:echo"輸出1";break;case2:echo"輸出2";break;default:echo“其他默認輸出”;}if($i==0){echo"輸出0";}elseif($i==1){echo"輸出1";}elseif($i==2){echo"輸出2";}PHP循環(huán)語句的介紹與應用1、breakn循環(huán)控制語句//也可以理解為循環(huán)中斷語句,跳出循環(huán)語句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)語句do{……}while(expr)while(expr){……}先執(zhí)行一次循環(huán)再判斷條件先判斷條件執(zhí)再行一次循環(huán)for循環(huán)語句//for循環(huán)是PHP中最復雜的循環(huán)結構。for(expr1;expr2;expr3){……}for($i=1;$i<=10;$i++){echo$i;//$i=1:無條件執(zhí)行//$i<=10,$i++:循環(huán)條件}作業(yè)、討論題、思考題:PHP環(huán)境的配置,wamp環(huán)境的設置,練習PHP的條件語句、循環(huán)語句的用法及語法規(guī)則的應用。課后小結:本節(jié)課主要講解了PHP環(huán)境的配置,wamp環(huán)境的設置,介紹了PHP的數(shù)據(jù)類型及PHP各種運算及運算規(guī)則。重點介紹了PHP的條件語句、循環(huán)語句的用法及語法規(guī)則?!禔SP動態(tài)網(wǎng)站開發(fā)》課程教案授課班級15級淘寶班課次2授課方式理論課?討論課□實驗課□習題課□其他□課時安排3授課題目(教學章、節(jié)或主題):PHP數(shù)組、函數(shù)及Mysql簡介和創(chuàng)建新的數(shù)據(jù)庫與數(shù)據(jù)庫中的常用SQL語句教學目的、要求(分掌握、熟悉、了解三個層次):熟練掌握PHP數(shù)組的定義、數(shù)組的遍歷、foreach的應用。掌握創(chuàng)建數(shù)據(jù)庫的方法及其基本語句。掌握數(shù)據(jù)庫中的常用SQL語句。教學重點及難點:creat、select、update、insert語句的應用。教學基本內(nèi)容及方法手段PHP數(shù)組的創(chuàng)建修改使用1、創(chuàng)建和修改數(shù)組/多維數(shù)組PHP中的數(shù)組是一個關鍵字或值的集合(值可以是任何一種類型,包括另一個數(shù)組)PHP中使用array來創(chuàng)建一個數(shù)組:array(key=>value,key=>value……)例子:$arr=array(3,5,7,9,6);$arr=array("id"=>2,"title"=>3);用方括號的語法來修改數(shù)組:$arr[]=value$arr=array("a"=>"理論","b"=>"教程","c"=>"第二次課");$arr['a']="PHP學習";$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)計數(shù)組條數(shù)count($arr);使用is_array函數(shù)判斷數(shù)組is_array($arr);另一種創(chuàng)建數(shù)組的函數(shù)explodeexplode("key",value);//分解函數(shù)$a="1986-1983-2010";$arr=explode("-",$a);Print_r($arr);3、使用foreach遍歷數(shù)組遍歷數(shù)組很多種方法,可以使用For循環(huán),while循環(huán),最巧妙的一種遍歷數(shù)組foreach給我們帶來了跟多方便foreach($arras$key=>$value){……}$arr=array(1986,1983,2010);foreach($arras$key=>$value){ echo"需要的關鍵字$key需要的值$value<br>"; }PHP函數(shù)和自定義函數(shù)1、PHP函數(shù)介紹函數(shù)就是為了解決一些常見問題實現(xiàn)制作好的“?!?。PHP函數(shù)分為:系統(tǒng)內(nèi)部函數(shù)和自定義函數(shù)。格式:func(val1,val2,…);例子date("Y-m-d")md5("zzhtpz")函數(shù)的優(yōu)越性:控制程序設計的復雜性提高軟件的可靠性提高軟件的開發(fā)效率提高軟件的可維護性提高程序的重用性查看PHP中文手冊,查看有關的函數(shù)2、PHP如何自定義函數(shù)使用Function來自定義一個函數(shù):格式:Functionfunc_name($val){……}函數(shù)的命名跟自定義變量一樣,只能使用_,A~Z,a~z,一個自定義函數(shù)中的變量是局部的,函數(shù)外不生效,使用global全局變量的時候,在函數(shù)外才可使用變量(不建議)。為了放置全局變量的混亂可以使用unset($var)刪除一個變量。functionee(){echo"輸出自定義函數(shù)";}ee();functionee($val){echo"輸出自定義函數(shù)".$val;}ee(33);3、使用自定義函數(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ù)是否存在//防止錯誤if(function_exists('ee')){ echo"真";}else{echo"假";}(4)引用返回值使用&符號Mysql簡介和創(chuàng)建新的數(shù)據(jù)庫1、MYSQL簡介與概要MySQL是一個小型關系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司,現(xiàn)在已經(jīng)被Sun公司收購,支持FreeBSD、Linux、MAC、Windows等多種操作系統(tǒng),與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQLServer等相比功能稍弱一些。1、可以處理擁有上千萬條記錄的大型數(shù)據(jù)2、支持常見的SQL語句規(guī)范3、可移植行高,安裝簡單小巧4、良好的運行效率,有豐富信息的網(wǎng)絡支持5、調(diào)試、管理,優(yōu)化簡單(相對其他大型數(shù)據(jù)庫)2、訪問MYSQL的幾種途徑知識點:MYSQL默認使用的是3306端口1、使用工具MYSQL官方的工具訪問:MySQLAdministratortool安裝:步驟下載Backupproject//備份Restore//導入MySQLquery//瀏覽表和數(shù)據(jù)庫2、使用第三方工具訪問:mysqlexec、mysql連接器3、使用WEB方式訪問:phpMyAdmin//最常見比較:使用客戶端工具操作效率高,安全性高,使用WEB方式簡單方便,不受限制。3、介紹數(shù)據(jù)庫中常用字段類型整數(shù)型:TINYINT,SMALLINT,INT,BIGINT小數(shù)型:FLOAT,DOUBLE,DECIMAL(M,D)字符型:CHAR,VARCHAR日期型:DATETIME,DATE,TIMESTAMP備注型:TINYTEXT,TEXT,LONGTEXT4、創(chuàng)建一個簡單的數(shù)據(jù)庫創(chuàng)建一個數(shù)據(jù)庫命令:CREATETABLE刪除一個數(shù)據(jù)庫命令: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`))實例講解:1.將命令復制到phpmyadmin中建立表2.用客戶端工具建立表//設計幾個字段瀏覽/結構/SQL/搜索、插入、導出/import/操作.導入數(shù)據(jù)庫文件1、SELECT查詢語句和條件語句SELECT查詢字段FROM表名WHERE條件查詢字段:可以使用通配符*、字段名、字段別名表名:數(shù)據(jù)庫.表名,表名常用條件:=等于、<>不等于、in包含、notin不包含、like匹配、BETWEEN在范圍、notBETWEEN不在范圍<、>條件運算:and、or、()2、排序,分組,指針查詢,計算分組語句:groupby字段排序語句:orderby字段,字段ASC/DESC指針查詢:limit初始值,結束值計算:COUNT(*)統(tǒng)計函數(shù)MAX(*)最大值函數(shù)MIN(*)最小值函數(shù)AVG(*)平均值函數(shù)SUM(*)累計值函數(shù)(∑)3、Insert插入語句insertinto表名(字段…,…)values(值…,…)insertinto表名values(值…,…)插入時須考慮清楚字段類型避免插入后出現(xiàn)缺值,亂碼現(xiàn)象Update更新語句UPDATE表名SET字段=值WHERE條件limit常用條件:=等于、<>不等于、in包含、notin不包含、like匹配、BETWEEN在范圍、notBETWEEN不在范圍條件預算:and、or、()5、Delete刪除語句DELETEFROM表名WHERE條件limit常用條件:=等于、<>不等于、in包含、notin不包含、like匹配//%、 BETWEEN在范圍、notBETWEEN不在范圍條件預算:and、or、()MYSQL在PHP5中的應用1、PHP與mysql建立鏈接php.ini加載mysql組件:extension=php_mysql.dll前的;去掉extension_dir=""路徑是否正確PHP鏈接mysql函數(shù)mysql_connect:開啟MySQL鏈接$conn=@mysql_connect("localhost","root","")ordie("鏈接錯誤");mysql_select_db:打開一個數(shù)據(jù)庫mysql_select_db("ww",$conn);注意:@和ordie隱藏錯誤和條件顯示mysql_connect("主機","用戶名","密碼")mysql_select_db("打開數(shù)據(jù)庫",連接標識符);如果不特別聲明連接標識符,則默認為是上一次打開的連接。2、如何去執(zhí)行一個SQL語句mysql_query(SQL語句,連接標識符);說明:mysql_query用來根據(jù)連接標識符向該數(shù)據(jù)庫服務器的當前數(shù)據(jù)庫發(fā)送查詢,如果連接標識符默認,則默認為是上一次打開的連接。返回值:成功后返回一個結果標識符,失敗時返回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用來查詢結果的一行保存至數(shù)組,該數(shù)組下標從0開始,每一個數(shù)組元素對應一個域。通過循環(huán),可以將查詢結果全部獲得。$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ù)組中,沒有行時返回false。$sql="SELECT*FROM`test`";$query=mysql_query($sql,$conn);$row=mysql_fetch_array($query);echo$row['name'];輸出所有內(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("鏈接錯誤");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用于計算查詢結果中所得行的數(shù)目echomysql_num_rows($query);mysql_insert_id傳回最后一次使用INSERT指令的ID。mysql_tablename取得數(shù)據(jù)庫名稱mysql_error返回錯誤信息mysql_close關閉MySQL鏈接學習制作PHP+MYSQL留言板1、設計一個完整程序的流程2、HTML部分表單標簽的使用<formaction=""method="GET"><inputtype="text"size=10name="user"/><inputtype="text"size=20name="title"/><textareaname="content"></textarea><inputtype="submit"name="submit"/></form>3、PHP里的頁面相互調(diào)用require()與require_once()通常放在PHP程序的最前面,PHP程序在執(zhí)行前,就會先讀入require所指定引入的文件,如果出現(xiàn)錯誤是致命的。include()與include_once()可以放在PHP程序的任何一個位置,PHP程序在執(zhí)行到時,才會先讀入include所指定引入的文件,如果出現(xiàn)錯誤將會提示。require('con.php');include('con.php');PHP接收參數(shù)的幾種方式PHP5在默認的情況下接收參數(shù)是需要使用$_GET['value'];$_POST['value'];還可以在PHP.ini文件中的將register_globals=Off改register_globals=on可以直接使用,$value的值作業(yè)、討論題、思考題:制作PHP+MYSQL留言板課后小結:本節(jié)課講解了PHP數(shù)組的創(chuàng)建修改,用foreach遍歷數(shù)組,PHP函數(shù)的應用和如何自定義函數(shù),Mysql的簡介和創(chuàng)建新的數(shù)據(jù)庫。創(chuàng)建一個數(shù)據(jù)庫命令:CREATETABLE,刪除一個數(shù)據(jù)庫命令:DROPTABLE,修改一個字段名稱:RENAMETABLE`原字段`TO`新字段`;刪除一個字段:ALTERTABLE`表`DROP`原字段`,插入一個字段:ALTERTABLE`表`ADD`新字段`…AFTER`原字段。介紹了SELECT查詢語句和條件語句,排序,分組,指針查詢,計算;Insert插入語句,Update更新語句,Delete刪除語句,PHP與mysql建立鏈接:$conn=@mysql_connect("localhost","root","")ordie("鏈接錯誤");,如何去執(zhí)行一個SQL語句:mysql_query(SQL語句,連接標識符);,兩種查詢函數(shù)array/row區(qū)別,其他常用Mysql函數(shù)介紹如mysql_num_rows用于計算查詢結果中所得行的數(shù)目echomysql_num_rows($query);mysql_insert_id傳回最后一次使用INSERT指令的ID。mysql_tablename取得數(shù)據(jù)庫名稱,mysql_error返回錯誤信息,mysql_close關閉MySQL鏈接?!禔SP動態(tài)網(wǎng)站開發(fā)》課程教案授課班級15級淘寶班課次3授課方式理論課?討論課□實驗課□習題課□其他□課時安排3授課題目(教學章、節(jié)或主題):制作PHP+MYSQL留言板教學目的、要求(分掌握、熟悉、了解三個層次):了解設計一個完整程序的流程。掌握HTML部分表單標簽的使用與PHP里的頁面相互調(diào)用掌握PHP接收參數(shù)的幾種方式及提交表單Javascript驗證教學重點及難點:PHP接收參數(shù)的幾種方式及提交表單Javascript驗證。教學基本內(nèi)容及方法手段實例操作我們的留言板創(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ù)庫配置$conn=@mysql_connect("localhost","root","")ordie("連接失敗");mysql_select_db("liuyanban",$conn);mysql_query("setnames'GBK'");add.php//操作文件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>標題:<inputtype="text"name="title"/><br>內(nèi)容:<textareaname="content"></textarea><br><inputtype="submit"name="submit"value="發(fā)布留言"/></form>list.php//列表文件<?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>標題:<?=$row['title']?>用戶:<?=$row['user']?></td></tr><trbgColor="#ffffff"><td>內(nèi)容:<?=$row['content']?></td></tr><?}?></table>Head文件<head><b><ahref="add.php">添加留言</a>|<ahref="list.php">瀏覽留言</a>|<ahref="login.php">登錄</a></b>5、提交表單Javascript驗證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時被瀏覽器執(zhí)行8、md5加密函數(shù)md5(加密對象)9、COOKIE的使用和登陸作業(yè)、討論題、思考題:設計一個留言板課后小結:本節(jié)介紹了設計一個完整程序的流程,HTML部分表單標簽的使用,PHP里的頁面相互調(diào)用,接收參數(shù)的幾種方式,提交表單Javascript驗證,str_replace替換函數(shù)。講解了htmlspecialchars格式化html,md5加密函數(shù)與COOKIE的使用和登陸?!禔SP動態(tài)網(wǎng)站開發(fā)》課程教案授課班級15級淘寶班課次4授課方式理論課?討論課□實驗課□習題課□其他□課時安排3授課題目(教學章、節(jié)或主題):PHP+MYSQL分頁原理與PHP上傳原理及應用及文件操作教學目的、要求(分掌握、熟悉、了解三個層次):了解SQL語句中的limit用法與學習分頁的一種公式。掌握FORM標簽enctype屬性與$_FILES系統(tǒng)函數(shù)掌握move_uploaded_file函數(shù)與is_uploaded_file函數(shù)了解PHP部分文件操作函數(shù)與unlink()rmdir()刪除函數(shù)教學重點及難點:分頁公式與文件上傳原理教學基本內(nèi)容及方法手段1、SQL語句中的limit用法SELECT*FROMtable……limit開始位置,操作條數(shù)SELECT*FROMtable……limit0,20SELECT*FROMtable……limit10,202、學習分頁的一種公式(1)分頁原理所謂分頁顯示,也就是講數(shù)據(jù)庫中的結果集,一段一段顯示出來(2)需要的條件怎么分段,當前在第幾段(每頁有幾條,當前再第幾頁)前10條記錄:select*fromtablelimit0,10第11至20條記錄:select*fromtablelimit10,10第21至30條記錄:select*fromtablelimit20,10(3)得到公式(當前頁數(shù)-1)X每頁條數(shù),每頁條數(shù)Select*fromtablelimit($1)*$PageSize,$PageSize3、parse_url()解析URL函數(shù)parse_url()是講URL解析成有固定鍵值的數(shù)組的函數(shù)arg=value#anchor");print_r($ua);結果:Array([scheme]=>http//協(xié)議[host]=>hostname//域名[user]=>username//用戶名[pass]=>password//密碼[path]=>/path//路徑[query]=>arg=value//取得的值[fragment]=>anchor//)4、$_SERVER["REQUEST_URI"]函數(shù)//除域名以外的值預定義服務器變量的一種,所有$_SERVER開頭的都叫做預定義的服務器變量REQUEST_URI的作用是取得的當前URL,也就除域名外后面完整的地址路徑。/home.php?id=23&cid=22Echo$_SERVER["REQUEST_URI"]結果為:/home.php?id=23&cid=22簡單分頁$pagesize=5;$sql="select*frommessagelimit5,$pagesize";$query=mysql_query($sql);while($row=mysql_fetch_array($query)){echo"<hr><b>".$row['user']."|".$row['title'];}分頁實例/*分頁程序*/include("conn.php");include("head.php");$pagesize=10;//每頁需要顯示幾條信息$url=$_SERVER["REQUEST_URI"];//顯示文件目錄$url=parse_url($url);//把地址分析出來,分析成有固定鍵值的數(shù)組。$url=$url['path'];//echo$url;取出翻頁的地址$numq=mysql_query("select*frommessage");//查詢出所有記錄。$num=mysql_num_rows($numq);//記錄總條數(shù)//echo$num;//查看結果if($_GET['page'])//對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).">上一頁</a><ahref=$url?page=".($pageval+1).">下一頁</a>";}$sql="select*frommessagelimit$page$pagesize";$query=mysql_query($sql);while($row=mysql_fetch_array($query)){echo"<hr><b>".$row['user']."|".$row['title'];}PHP上傳原理及應用1、FORM標簽enctype屬性表單中enctype="multipart/form-data"的意思,是設置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded(通過瀏覽器傳遞文件),不能用于文件上傳;只有使用了multipart/form-data(可以傳遞文件,文件是二進制編碼格式),才能完整的傳遞文件數(shù)據(jù)。<formaction=""enctype="multipart/form-data"method="post"name="upform">上傳文件:<inputname="upfile"type="file"><inputtype="submit"value="上傳"></form>2、$_FILES系統(tǒng)函數(shù)//將文件轉換為數(shù)組$_FILES['myFile']['name']客戶端文件的原名稱。$_FILES['myFile']['type']文件的MIME類型,例如"image/gif"。image/jpgimage/jpegimage/pngimage/pjpegimage/gifimage/bmpimage/x-pngapplication/x-zip-compressed
……$_FILES['myFile']['size']已上傳文件的大小,單位為字節(jié)。$_FILES['myFile']['tmp_name']儲存的臨時文件名,一般是系統(tǒng)默認。存儲路徑$_FILES['myFile']['error']該文件上傳相關的錯誤代碼。0;文件上傳成功。1;超過了文件大小php.ini中。2;超過了文件大小或MAX_FILE_SIZE選項指定的值。3;文件只有部分被上傳。4;沒有文件被上傳。5;上傳文件大小為0。3、move_uploaded_file函數(shù)//上傳后移動文件到目標位置的函數(shù)move_uploaded_file(臨時文件,目標位置和文件名);is_uploaded_file函數(shù)//判斷上傳MIME類型的文件函數(shù)is_uploaded_file(MIME);上傳文件件實例<?php//上傳文件判斷if(is_uploaded_file($_FILES['upfile']['tmp_name'])){$upfile=$_FILES['upfile'];//print_r($_FILES['upfile']);測試結果$name=$upfile['name'];$type=$upfile['type'];$size=$upfile['size'];$tmp_name=$upfile['tmp_name'];$error=$upfile['error'];//echo$type;//測試輸出結果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">上傳文件:<inputname="upfile"type="file"><inputtype="submit"value="上傳"></form>文件操作1、PHP部分文件操作函數(shù)(fopen,fread,filesize,fwrite,fclose)(1)fopen打開文件函數(shù)fopen(路徑和文件名,打開方式);R-只讀W-寫入A-讀寫(2)fread讀取文件內(nèi)容fread(打開的文件,結束位置);字節(jié)為單位(3)filesize讀取文件大小,字節(jié)為計量單位filesize(路徑和文件名);(4)fwrite寫入文件內(nèi)容fwrite(路徑和文件名,寫入的內(nèi)容);(5)fclose關閉打開的文件fclose(路徑和文件名);2、unlink()rmdir()刪除函數(shù)unlink()刪除文件函數(shù):unlink(路徑和文件名)rmdir()刪除目錄函數(shù):rmdir(路徑和目錄名)實例講解:建立一個模板文件tmp.htm<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML3.2//EN"><html><head><title>標題:{title}</title></head><body>此新聞的內(nèi)容:{content}</body></html>生成文件wenjiancaozuo.php$fp=fopen("tmp.htm","r");//只讀打開模板$str=fread($fp,filesize("tmp.htm"));//讀取模板中的內(nèi)容分//echo$str;測試讀取結果$str=str_replace("{title}","新標題",$str);$str=str_replace("{content}","新內(nèi)容",$str);//替換內(nèi)容fclose($fp);$handle=fopen('news.html','w');fwrite($handle,$str);fclose($handle);帶循環(huán)的生成批文件$con=array(array('新聞標題','新聞內(nèi)容'),array('新聞標題2','新聞內(nèi)容2'),array('新聞標題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;測試讀取結果$str=str_replace("{title}","新標題",$str);$str=str_replace("{content}","新內(nèi)容",$str);//替換內(nèi)容fclose($fp);$handle=fopen($path,'w');fwrite($handle,$str);fclose($handle);echo"生成成功";}刪除文件unlink('1.htm');作業(yè)、討論題、思考題:制作一個留言板設計分頁與文件上傳課后小結:本節(jié)介紹了SQL語句中的limit用法與學習分頁的一種公式,parse_url()解析URL函數(shù),$_SERVER["REQUEST_URI"],F(xiàn)ORM標簽enctype屬性,$_FILES系統(tǒng)函數(shù)講解了文件操作函數(shù)move_uploaded_file函數(shù),is_uploaded_file函數(shù),PHP部分文件操作函數(shù)(fopen,fread,filesize,fwrite,fclose),unlink()rmdir()刪除函數(shù)?!禔SP動態(tài)網(wǎng)站開發(fā)》課程教案授課班級15級淘寶班課次5授課方式理論課?討論課□實驗課□習題課□其他□課時安排3授課題目(教學章、節(jié)或主題):面向?qū)ο箝_發(fā)的學習(一)教學目的、要求(分掌握、熟悉、了解三個層次):了解什么是面向?qū)ο?,什么是類的概念掌握使用CLASS創(chuàng)建一個類及類的成員屬性和成員方法,對象中的$this關鍵字掌握使用new函數(shù)對象實例化,創(chuàng)建一個和多個對象掌握初始化對象__construct()和析構函數(shù)__destruct()了解封裝關鍵字:public,protected,private及封裝相關函數(shù):__set(),__get()熟悉繼承關鍵字:extends,PHP繼承的規(guī)則,基類方法重載和父類方法訪問掌握抽象方法和抽象類的定義,抽象類和方法使用規(guī)則教學重點及難點:CLASS創(chuàng)建一個類及類的成員屬性和成員方法,對象中的$this關鍵字與new函數(shù)對象實例化,創(chuàng)建一個和多個對象。初始化對象__construct()和析構函數(shù)__destruct()。教學基本內(nèi)容及方法手段1、什么是面向?qū)ο?,什么是類起初,“面向?qū)ο蟆笔菍V冈诔绦蛟O計中采用封裝、繼承、抽象等設計方法??墒?,這個定義顯然不能再適合現(xiàn)在情況。面向?qū)ο蟮乃枷胍呀?jīng)涉及到軟件開發(fā)的各個方面。如,面向?qū)ο蟮姆治觯∣OA,ObjectOrientedAnalysis),面向?qū)ο蟮脑O計(OOD,ObjectOrientedDesign)、以及我們經(jīng)常說的面向?qū)ο蟮木幊虒崿F(xiàn)(OOP,ObjectOrientedProgram)。傳統(tǒng)開發(fā)方法存在問題1.軟件重用性差,2.軟件可維護性差,3.無很好的擴展性面向?qū)ο蟮囊?.抽象性,2.封裝性,3.共享性,4.強調(diào)對象結構而不是程序結構面向?qū)ο蟮娜筇攸c(封裝,繼承,多態(tài))缺一不可什么是類我們可以理解成一個功能集合菜單,我們通過類來實現(xiàn)生成我們的方法2、使用CLASS創(chuàng)建一個類class方法名{……}3、類的成員屬性和成員方法classMyPc{public$name;var$price;functionvod(){return"PHP100視頻教程";}}4、使用new函數(shù)對象實例化new對象名(參數(shù))例:classMyPc{ var$key;//public$key等價 public$name; functionvod() { echo"面向?qū)ο髮W習"; }}$pc1=newMyPc();$pc1->key="php";//訪問成員屬性echo$pc->key;$pc1->vod();//調(diào)用成員方法5、創(chuàng)建一個和多個對象創(chuàng)建一個和多個對象我們只需要多次使用new函數(shù),進行對類的實例化類對象classMyPc{public$name;public$price;functionvod(){return"PHP學習教材";}……}$pc1=newMyPc();$pc2=newMyPc();$pc3=newMyPc();6、對象中的$this關鍵字$this關鍵字是用來訪問當前對象中的對象屬性和對象方法的系統(tǒng)變量classMyPc{public$name;public$price;functionvod(){$this->name;}……$this->vod();……}我們可以理解為$this是在對象中特殊的一種使用構造函數(shù)和變量的方法。$this僅能在當前對象中使用classMyPc{ public$name; functionvod() { echo$this->name.",播放電影"."<br>"; } functiongame() { echo$this->vod()."玩游戲"; }}$pc1=newMyPc();$pc1->name="家用電腦!";//訪問成員屬性$pc1->vod();//調(diào)用成員方法$pc2=newMyPc();$pc2->name="公司電腦!";$pc2->game()7、初始化對象__construct()我們在創(chuàng)建一個類有時候需要初始化一些操作,這個時候我們需要使用初始化函數(shù),在PHP5中有兩種初始化方法。1、原PHP4中我們需要建立一個與類名稱相同的一個對象方法:若類改名字則內(nèi)部初始化,也要改名字。2、在PHP5中繼承了PHP4但為了更好的針對面向?qū)ο箝_發(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("家用電腦","臺式機");$pc1->vod();//調(diào)用成員方法$pc2=newMyPc("公司電腦","筆記本");$pc2->game();8、析構函數(shù)__destruct()//能夠在對象釋放時自動被調(diào)用的方法被稱為析構函數(shù)。PHP4支持析構函數(shù),通過登錄在PHP運行終止時用register_shutdown_function()調(diào)用的函數(shù),只有類似的實行方法。PHP5正式支持析構函數(shù),能夠在類中指定對象釋放時的動作——可以理解為垃圾回收機制。當對象內(nèi)部的操作執(zhí)行完畢的時候,__destruct()被調(diào)用,然后對象所使用的內(nèi)存被釋放出來。規(guī)則:后進先出classMyPc{……function__destruct(){……}}function__destruct(){ echo"<br>====".$this->name;}輸出結果====公司電腦
====家用電腦提前釋放:$pc1=null;9、類的封裝和應用封裝關鍵字:public,protected,private封裝是把一些相關的屬性和行為隱藏起來,從而得到保護和安全。public表示全局,類內(nèi)部外部子類都可以訪問;protected表示受保護的,只有本類或子類或父類中可以訪問;private表示私有的,只有本類內(nèi)部可以使用;classMyPc{public$name;//全局屬性,任何位置都可以引用protected$price;//保護屬性,只有本類或子類或父類中可以訪問privatefunctionvod()//私有屬性,只有本類內(nèi)部可以使用{$this->name;}……}封裝相關函數(shù):__set(),__get()某些特定操作的時候需要訪問和賦值封裝的類型,這個時候我們就需要其他的函數(shù)幫我們完成這些操作,PHP為我們提供了個方法名:__set(),__get()__set()取得當前類中封裝過私有屬性或者方法重新執(zhí)行或賦值操作__set($Name,$Value)__get()取得當前類中封裝過屬性或方法并轉換成共有屬性實例講解classMyPc{ private$name; function__construct($name='') { return $this->name=$name; } function__get($name)//間接訪問私有變量 { return$this->name."========";//可以改變變量的輸出方式}function__set($n,$v)//設置私有變量的值{ if($v=="zzh"){$this->$n=$v;}}}$pc1=newMyPc("我的電腦");$pc1->name="fdsgdsgdsg";echo$pc1->name;10、類的繼承和應用繼承關鍵字: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();基類方法重載和父類方法訪問因為屬于向下繼承的原理,基類不能使用派生類里內(nèi)容,這個時基類的一些方法不能完成我們的一些派生類的功能,我們就可以進行方法重載避免了,新建方法帶來的混亂。方法重載我們也可以理解方法覆蓋,在派生類里使用與基類方法重名的方法名稱執(zhí)行重載,重載時我們需要調(diào)用原始基類內(nèi)容,再增加新內(nèi)容,我們可以使用基類名::方法名稱 classsonextendsroot{ functiondayin() { return root::dayin()."sonprint<br>"; }11、類的抽象方法和類抽象關鍵字:abstract抽象就是無法確切的說明,但又有一定的概念或者名稱,在PHP中聲明一個抽象類或者方法我們需要使用adstract關鍵字。抽象方法和抽象類的定義一個類中至少有一個方法是抽象的,我們稱之為抽象類。所以如果定義抽象類首先定義抽象方法。abstractclassclass1{abstractfunctionfun1();……}1、類中至少有一個抽象方法。2、抽象方法不允許有{}。3、抽象方法前面必須要加abstract。抽象類和方法使用規(guī)則抽象類的幾個特點:1、不能被實例化,只能被繼承。2、繼承的派生類當中要把所以抽象方法重載才能實例化。不可實例化可實例化abstractclasscl1{abstractfunctionfun1();……}classcl2extendscl1{//繼承functionfun1(){//重載所有抽象方法{}……}abstractclasscl1{ abstractfunctionfun1(); abstractfunctionfun2(); abstractfunctionfun3(); functionok() {}}classcl2extendscl1{ functionfun1()//重載抽象方法{echo"第一個";} functionfun2() {echo"第二個";}functionfun3(){echo"第三個";}}$p=newcl2();$p->fun1();作業(yè)、討論題、思考題:建立一個類,定義三個屬性和三個方法課后小結:本節(jié)課介紹了什么是面向?qū)ο?,什么是類,使用CLASS創(chuàng)建一個類,類的成員屬性和成員方法,使用new函數(shù)對象實例化。創(chuàng)建一個和多個對象,對象中的$this關鍵字,初始化對象__construct(),析構函數(shù)__destruct()。講解了封裝關鍵字:public,protected,private,封裝相關函數(shù):__set(),__get(),繼承關鍵字:extends,PHP繼承的規(guī)則,基類方法重載和父類方法訪問,抽象關鍵字:abstract,抽象方法和抽象類的定義,抽象類和方法使用規(guī)則。
《ASP動態(tài)網(wǎng)站開發(fā)》課程教案授課班級15級淘寶班課次6授課方式理論課?討論課□實驗課□習題課□其他□課時安排3授課題目(教學章、節(jié)或主題):PHP面向?qū)ο箝_發(fā)的學習(二)與制作自己的PHP+MYSQL的類教學目的、要求(分掌握、熟悉、了解三個層次):了解關鍵字:final,self,static,const,interface,implements,instanceof。掌握多態(tài)的介紹與優(yōu)勢、多態(tài)的簡單應用。熟悉對象描述的配置,對象方法的異常處理及克隆對象的應用、自動載入對象的方法。熟悉常用MYSQL函數(shù)、使用類封裝常用SQL操作,簡化代碼及認識面向?qū)ο笤陂_發(fā)中的重要作用。教學重點及難點:MYSQL函數(shù)、使用類封裝常用SQL操作,簡化代碼及認識面向?qū)ο笤陂_發(fā)中的重要作用與關鍵字的應用。教學基本內(nèi)容及方法手段類中常用關鍵字1、關鍵字:final用來定義類和方法的一個重要關鍵字,當定義類的時候該類將不能被繼承,當用來定義方法的時候該方法將不能被重載finalclassclass1{//該類將不能被繼承……finalfunctionfun1(){ //該方法將不能被重載……}……}實例講解finalclassMyPc{//加上final后就不能被繼承 public$name='我的電腦'; finalfunctionpower()//加上final后就不能重載 { echo$this->name.",電腦打開中"; }}classmyextendsMyPc{ // functionpower(){//重載抽象方法//echoMyPc::power()."***************";//}}$p=newmy();$p->power();2、關鍵字:self用來用類訪問當前類中的內(nèi)容的關鍵字,類似與$this關鍵字,但$this是需要類實例化以后才可以使用,self可以直接訪問當前類中的內(nèi)部成員self::類內(nèi)部成員(屬性或者方法)等價與類名::類內(nèi)部成員(屬性或者方法)注意:因為沒有實例化類訪問內(nèi)部屬性或者方法是沒有意義的,所以self一般用來訪問類中的:靜態(tài)成員,常量,或者其他定義內(nèi)容。3、關鍵字:static用來定義類的靜態(tài)屬性或方法,可以在類未被實例化時使用,靜態(tài)屬性單獨占用內(nèi)存而不會因創(chuàng)建多個對象時而導致同樣的方法或者屬性重復占用。classclass1{static$name;staticfunctionfun1(){//靜態(tài)方法內(nèi)部禁止出現(xiàn)非靜態(tài)內(nèi)容……}
}類內(nèi)部訪問靜態(tài)成員類名稱::靜態(tài)成員self::靜態(tài)成員類外部訪問靜態(tài)成員類名稱::靜態(tài)成員實例講解finalclassMyPc{//加上final后就不能被繼承static$name='我的電腦'; staticfunctionpower()//靜態(tài)方法,使用$this關鍵字會出錯 { //echo$this->name.",電腦打開中";this關鍵字就不能使用 echoself::$name.",電腦打開中";//用self方法訪問靜態(tài)屬性。 } }//echoMyPc::$name;//靜態(tài)屬性可以被訪問輸出//MyPc::$name="你的電腦";//靜態(tài)屬性可以被訪問修改$p=newMyPc();$p->power();4、關鍵字:const用來定義類中的常量,類似PHP外部定義常量的關鍵字define();Const只能修飾類當中的成員屬性!classclass1{constNAME;functionfun1(){……}
}實例講解finalclassMyPc{constNAME='我的電腦'; staticfunctionpower() { echoself::NAME.",電腦打開中"; } }$p=newMyPc();$p->power();注意事項:1、建議大寫常量2、常量不使用$符號類中接口的應用接口的介紹與創(chuàng)建關鍵字:interface接口:一種成員屬性全部為抽象的特殊抽象類,在程序中同為規(guī)范的作用。抽象類1、類中至少有一個抽象方法2、抽象方法前需加abstract接口1、類中全部為抽象方法2、抽象方法前不用加abstract3、接口抽象方法屬性為public4、成員屬性必須為常量共同點:1、本身都不能被實例化,必須被繼承或者引用。2、繼承或者引用后,需要把所有抽象方法重載方可使用。接口有自己的創(chuàng)建關鍵字:interface與普通類的創(chuàng)建類似interfacedemo{//聲明接口類constNAME="名字";//對象屬性必須為常量functionFun1();functionFun2();//對象方法全部為抽象方法,前面無須加abstract}實例講解interfacedemo{ constNAME="名稱";//聲明一個變量試試 functionfun1();//前加一個abstract試試,建一個普通的方法試試 }2、接口的引用與規(guī)范關鍵字:implements接口引用區(qū)別與之前我們的學的類繼承關鍵字extends,繼承只能是單一性,而接口可以使用關鍵字:implements多個引用并用逗號,分開。設已有接口demo,demo2,demo3父類root1、普通類引用接口例子:classmypcimplementsdemo,demo2,demo3{……}2、抽象類引用接口例子:abstractclassmypcimplementsdemo,demo2,demo3{……}3、繼承父類引用接口并存例子:classmypcextendsrootimplementsdemo,demo2,demo3{……}//先繼承后接口,單繼承多接口4、接口與接口繼承:interfacedemo3extendsdemo{……}類中多態(tài)的應用1、多態(tài)的介紹與優(yōu)勢介紹:多態(tài)性是繼抽象和繼承后,面向?qū)ο笳Z言的第三個特征。從字面上理解,多態(tài)的意思是“多種形態(tài)”,簡單來說,多態(tài)是具有表現(xiàn)多種形態(tài)的能力的特征,在OO中是指“語言具有根據(jù)對象的類型以不同方式處理。優(yōu)勢:OOP的模式并不僅僅是把很多函數(shù)和功能集合起來,目的而是使用類,繼承,多態(tài)的方式描述我們生活中的一種情況。從而使得我們的代碼更具有“物”的意義。幫助我們減少一些重復性的代碼和條件語句的判斷。2、運算符:instanceofPHP一個類型運算符。instanceof用來測定一個給定的對象是否來自指定的對象類。classA{}classB{}$thing=newA;if($thinginstanceofA){//判斷變量$thing是否來自類Aecho'A';}if($thinginstanceofB){echo'B';}3、多態(tài)的簡單應用interfacemyusb{ functiontype(); functionalert();}classzipimplementsmyusb{ functiontype(){ echo"2.0"; } functionalert() {echo"正在檢查————U盤驅(qū)動";}}classmp3implementsmyusb{ functiontype(){ echo"1.0"; } functionalert() {echo"正在檢查————Mp3盤驅(qū)動";}}classmypc{ functionpcusb($what) { $what->type()."<br>"; $what->alert(); } }$p=newmypc();$zip=newzip();$mp3=newmp3();$p->pcusb($mp3);//插上不同的設備,就有不同的輸出總結篇對象描述的配置方法名__tostring()我們可以直接打印對象句柄,從而獲得該方法的基本信息或其他內(nèi)容。classMy{function__tostring(){echo"我所要顯示的內(nèi)容";}}$p=newMy();echo$p;輸出結果:我所要顯示的內(nèi)容2、對象方法的異常處理方法名__call($funname,$arr_value)調(diào)用一些不存在的對象方法的異常處理,使程序繼續(xù)正常運行。classMy{function__call($n,$v){echo"錯誤的方法名".$n;echo"錯誤的參數(shù)".Print_r($v);//因為參數(shù)會有多個所要用數(shù)組的方式保存}//打印的時候也要就用print_r輸出。}克隆對象的應用方法名__clone()關鍵字clone通過克隆的方式我們可以在內(nèi)存中生成兩個一樣的對象或升級原對象。classMy{function__clone(){echo"克隆時自動調(diào)用的函數(shù)";}}$a=newMy()$b=$a;//內(nèi)存中只有一個對象$a=newMy()$b=clone$a;//內(nèi)存中會有兩個對象自動載入對象的方法方法名__autoload()快速取得對象名稱并自動載入進當前頁面function__autol
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年安徽省A10聯(lián)盟高三上學期12月質(zhì)檢考歷史試卷
- 2024-2025學年模塊綜合檢測卷(素能提升訓練)-勤徑學升高中歷史選擇性必修1同步練測(統(tǒng)編版2019)
- 2025年專利共有協(xié)議制定指南
- 2025年企業(yè)產(chǎn)權交換策劃合同書
- 2025年信貸購買房產(chǎn)轉賣合同樣本
- 2025年公積金繳納責任協(xié)議
- 2025年人力資源合作與交流協(xié)議書
- 2025年促銷禮品市場合作框架協(xié)議
- 2025年鋅材項目規(guī)劃申請報告模范
- 2025年免疫細胞質(zhì)量控制與檢驗檢測協(xié)議
- 河南省南陽市2023-2024學年八年級上學期期末考試數(shù)學試題
- GB/T 44230-2024政務信息系統(tǒng)基本要求
- 共享wifi貼合同范本
- 統(tǒng)戰(zhàn)工作先進個人事跡材料
- 成人鼻腸管的留置與維護
- 國能遼寧北票 200MW 風力發(fā)電項目地質(zhì)災害危險性評估報告
- 2024年松溪縣城投實業(yè)集團有限公司招聘筆試沖刺題(帶答案解析)
- 《中電聯(lián)團體標準-220kV變電站并聯(lián)直流電源系統(tǒng)技術規(guī)范》
- 新版ISO22301BCM體系手冊
- 55項臨床護理技術操作標準(49-55項)
- 《公路智慧養(yǎng)護信息化建設指南(征求意見稿)》
評論
0/150
提交評論