三、PHP面向對象開發(fā)學習_第1頁
三、PHP面向對象開發(fā)學習_第2頁
三、PHP面向對象開發(fā)學習_第3頁
三、PHP面向對象開發(fā)學習_第4頁
三、PHP面向對象開發(fā)學習_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、PHP面向對象開發(fā)的學習(五)面向對象開發(fā)的學習(五)1、抽象關鍵字、抽象關鍵字 :abstract2、抽象方法和抽象類的定義、抽象方法和抽象類的定義3、抽象類和方法使用規(guī)則、抽象類和方法使用規(guī)則類的抽象方法和類類的抽象方法和類PHP面向對象開發(fā)的學習(五)面向對象開發(fā)的學習(五)1、抽象關鍵字、抽象關鍵字 :abstract抽象就是無法確切的說明,但又有一定的概念或者名稱,在PHP中聲明一個抽象類或者方法我們需要使用adstract關鍵字2、抽象方法和抽象類的定義、抽象方法和抽象類的定義一個類中至少有一個方法是抽象的,我們稱之為抽象類。所以如果定義抽象類首先定義抽象方法。abstract c

2、lass class1 abstract function fun1();1、類中至少有一個抽象方法2、抽象方法不允許有 3、抽象方法前面必須要加abstractPHP面向對象開發(fā)的學習(五)面向對象開發(fā)的學習(五)3、抽象類和方法使用規(guī)則、抽象類和方法使用規(guī)則抽象類的幾個特點: 1、不能被實例化,只能被繼承 2、繼承的派生類當中要把所以抽象方法重載才能實例化abstract class cl1 abstract function fun1();class cl2 extends cl1 function fun1() 繼承重載所有抽象方法不可實例化不可實例化可實例化可實例化PHP面向對象開發(fā)

3、的學習(六)面向對象開發(fā)的學習(六)1、關鍵字、關鍵字 :final2、關鍵字、關鍵字 : self3、關鍵字、關鍵字 :static4、關鍵字、關鍵字 :const類中常用關鍵字類中常用關鍵字PHP面向對象開發(fā)的學習(六)面向對象開發(fā)的學習(六)1、關鍵字、關鍵字 :final 用來定義類和方法的一個重要關鍵字,當定義類的時候該類將不能被繼承,當用來定義方法的時候該方法將不能被重載final class class1 final function fun1() 該類將不能被繼承該方法將不能被重載PHP面向對象開發(fā)的學習(六)面向對象開發(fā)的學習(六)2、關鍵字、關鍵字 : self 用來用類訪

4、問當前類中的內容的關鍵字,類似與$this關鍵字,但$this是需要類實例化以后才可以使用,self 可以直接訪問當前類中的內部成員self : 類內部成員(屬性或者方法)類名 : 類內部成員(屬性或者方法)等價于注意:因為沒有實例化類訪問內部屬性或者方法是沒有意義的, 所以self一般用來訪問類中的:靜態(tài)成員,常量,或者其他定義內容PHP面向對象開發(fā)的學習(六)面向對象開發(fā)的學習(六)3、關鍵字、關鍵字 :static 用來定義類的靜態(tài)屬性或方法,可以在類未被實例化時使用,靜態(tài)屬性單獨占用內存而不會因創(chuàng)建多個對象時而導致同樣的方法或者屬性重復占用。class class1 static $n

5、ame; static function fun1() 類名稱 : 靜態(tài)成員類名稱 : : 靜態(tài)成員 self : : 靜態(tài)成員靜態(tài)成員的訪問靜態(tài)方法內部禁止出現(xiàn)非靜態(tài)內容類內部訪問靜態(tài)成員類外部訪問靜態(tài)成員PHP面向對象開發(fā)的學習(六)面向對象開發(fā)的學習(六)4、關鍵字、關鍵字 :const 用來定義類中的常量,類似PHP外部定義常量的關鍵字define(); Const只能修飾類當中的成員屬性!class class1 const NAME; function fun1() 注意事項:1、建議大寫常量2、常量不使用$符號PHP面向對象開發(fā)的學習(七)面向對象開發(fā)的學習(七)1、接口的介紹與

6、創(chuàng)建、接口的介紹與創(chuàng)建 關鍵字關鍵字 :interface2、接口的引用與規(guī)范、接口的引用與規(guī)范 關鍵字關鍵字 :implements類中接口的應用類中接口的應用PHP面向對象開發(fā)的學習(七)面向對象開發(fā)的學習(七)1、接口的介紹與創(chuàng)建、接口的介紹與創(chuàng)建接口:一種成員屬性全部為抽象的特殊抽象類,在程序中同為規(guī)范的作用接口:一種成員屬性全部為抽象的特殊抽象類,在程序中同為規(guī)范的作用1、類中全部為抽象方法2、抽象方法前不用不用加abstract3、接口抽象方法屬性為public4、成員屬性必須為常量1、類中至少有一個抽象方法2、抽象方法前需加abstract抽象類接口區(qū)別共同點:1、本身都不能被實

7、例化,必須被繼承或者引用、本身都不能被實例化,必須被繼承或者引用2、繼承或者引用后,需要把所有抽象方法重載方可使用、繼承或者引用后,需要把所有抽象方法重載方可使用PHP面向對象開發(fā)的學習(七)面向對象開發(fā)的學習(七)1、接口的介紹與創(chuàng)建、接口的介紹與創(chuàng)建接口有自己的創(chuàng)建關鍵字:interface 與普通類的創(chuàng)建類似interface demo const NAME=名字; function Fun1(); function Fun2();聲明接口類對象屬性必須為常量對象方法全部為抽象方法,前面無須加adstractPHP面向對象開發(fā)的學習(七)面向對象開發(fā)的學習(七)2、接口的引用與規(guī)范、接口

8、的引用與規(guī)范 接口引用區(qū)別與之前我們的學的類繼承關鍵字 extends,繼承只能是單一性,而接口可以使用關鍵字:implements 多個引用并用逗號 , 分開.1、普通類引用接口例子: class mypc implements demo , demo2 , demo3 2、抽象類引用接口例子: abstract class mypc implements demo , demo2 , demo3 設已有接口設已有接口 demo , demo2 , demo3PHP面向對象開發(fā)的學習(七)面向對象開發(fā)的學習(七)2、接口的引用與規(guī)范、接口的引用與規(guī)范3、繼承父類引用接口并存例子: class

9、 mypc extends root implements demo , demo2 , demo3 4、接口與接口繼承: interface demo3 extends demo 設已有接口設已有接口 demo , demo2 , demo3 父類父類 root先先繼承繼承后后接口,接口,單單繼承繼承多多接口接口PHP面向對象開發(fā)的學習(八)面向對象開發(fā)的學習(八)1、多態(tài)的介紹與優(yōu)勢、多態(tài)的介紹與優(yōu)勢2、運算符運算符 :instanceof3、多態(tài)的簡單應用、多態(tài)的簡單應用類中多態(tài)的應用類中多態(tài)的應用PHP面向對象開發(fā)的學習(八)面向對象開發(fā)的學習(八)1、多態(tài)的介紹與優(yōu)勢、多態(tài)的介紹與優(yōu)

10、勢 多態(tài)性是繼抽象和繼承后,面向對象語言的第三個特征。從字面上理解,多態(tài)性是繼抽象和繼承后,面向對象語言的第三個特征。從字面上理解,多態(tài)的意思是多態(tài)的意思是“多種形態(tài)多種形態(tài)”,簡單來說,多態(tài)是具有表現(xiàn)多種形態(tài)的能力,簡單來說,多態(tài)是具有表現(xiàn)多種形態(tài)的能力的特征,在的特征,在OO中是指中是指“語言具有根據(jù)對象的類型以不同方式處理。語言具有根據(jù)對象的類型以不同方式處理。 OOP的模式并不僅僅是把很多函數(shù)和功能集合起來,目的而是使用類,的模式并不僅僅是把很多函數(shù)和功能集合起來,目的而是使用類,繼承,多態(tài)的方式描述我們生活中的一種情況。從而使得我們的代碼更具繼承,多態(tài)的方式描述我們生活中的一種情況。

11、從而使得我們的代碼更具有有“物物”的意義。幫助我們減少一些重復性的代碼和條件語句的判斷。的意義。幫助我們減少一些重復性的代碼和條件語句的判斷。介紹介紹優(yōu)勢優(yōu)勢PHP面向對象開發(fā)的學習(八)面向對象開發(fā)的學習(八)2、運算符、運算符 :instanceofPHP 一個類型運算符。instanceof 用來測定一個給定的對象是否來自指定的對象類。class A class B $thing = new A;if ($thing instanceof A) echo A;if ($thing instanceof B) echo B;PHP面向對象開發(fā)的學習(八)面向對象開發(fā)的學習(八)3、多態(tài)的簡

12、單應用PHP面向對象開發(fā)的學習(九)面向對象開發(fā)的學習(九)1、對象描述的配置、對象描述的配置2、對象方法的異常處理、對象方法的異常處理3、克隆對象的應用、克隆對象的應用4、自動載入對象的方法、自動載入對象的方法總結篇總結篇PHP面向對象開發(fā)的學習(九)面向對象開發(fā)的學習(九)1、對象描述的配置、對象描述的配置 我們可以直接打印對象句柄,從而獲得該方法的基本信息或其他內容。class Myfunction _tostring ( ) echo 我所要顯示的內容; 方法名 _tostring()$p = new My();echo $p;輸出結果:我所要顯示的內容PHP面向對象開發(fā)的學習(九)面

13、向對象開發(fā)的學習(九)2、對象方法的異常處理、對象方法的異常處理 調用一些不存在的對象方法的異常處理,使程序繼續(xù)正常運行。class Myfunction _call($n,$v) echo 錯誤的方法名.$n; echo 錯誤的參數(shù).Print_r($v); 方法名 _call($funname,$arr_value)因為參數(shù)會有多個所要用數(shù)組的方式保存,打印的時候也要就用print_r 輸出PHP面向對象開發(fā)的學習(九)面向對象開發(fā)的學習(九)3、克隆對象的應用、克隆對象的應用 通過克隆的方式我們可以在內存中生成兩個一樣的對象或升級原對象。class Myfunction _clone(

14、) echo 克隆時自動調用的函數(shù); 方法名 _clone() 關鍵字 clone$a=new My()$b=$a; $a=new My()$b= clone $a; 內存中只有一個對象內存中會有兩個對象PHP面向對象開發(fā)的學習(九)面向對象開發(fā)的學習(九)4、自動載入對象的方法、自動載入對象的方法 快速取得對象名稱并自動載入進當前頁面function _autoload($class_n) include($class_n.php); $p=new Mypc(); $d=new demo();方法名 _autoload()將會被自動調用,執(zhí)行如下include(mypc.php);inclu

15、de(demo.php);該方法是在類以外單獨的方法也就是我們所謂的構造函數(shù)PHP模板引擎模板引擎Smarty入門使用入門使用學習目標學習目標1、Smarty介紹及應用的優(yōu)缺點介紹及應用的優(yōu)缺點2、Smarty的配置的配置 3、Smarty的應用:變量,循環(huán)的應用:變量,循環(huán)PHP模板引擎模板引擎Smarty入門使用入門使用1、Smarty介紹及應用的優(yōu)缺點介紹及應用的優(yōu)缺點什么是什么是smarty? Smarty是一個使用是一個使用PHP寫出來的寫出來的PHP模板引擎,目的是要使用模板引擎,目的是要使用PHP程序程序同同美工美工分離分離,使的程序員使的程序員改變程序的邏輯內容時不會影響到美工

16、的頁面設計,美工重新修改頁面時不會影響到程序的程序邏輯,改變程序的邏輯內容時不會影響到美工的頁面設計,美工重新修改頁面時不會影響到程序的程序邏輯,這在多人合作的項目中顯的尤為重要。(也易于程序的多樣式開發(fā))這在多人合作的項目中顯的尤為重要。(也易于程序的多樣式開發(fā))Smarty優(yōu)點優(yōu)點 1. 速度快:相對其他模板引擎。速度快:相對其他模板引擎。 2. 編譯型:采用編譯型:采用smarty編寫的程序在運行時要編譯成一個非模板技術的編寫的程序在運行時要編譯成一個非模板技術的PHP文件文件 3 緩存技術:它可以將用戶最終看到的緩存技術:它可以將用戶最終看到的HTML文件緩存成一個靜態(tài)的文件緩存成一個

17、靜態(tài)的HTML頁頁 4. 插件技術:插件技術:smarty可以自定義插件??梢宰远x插件。不適合使用不適合使用smarty的地方的地方 1. 需要實時更新的內容。例如像股票顯示,它需要經(jīng)常對數(shù)據(jù)進行更新需要實時更新的內容。例如像股票顯示,它需要經(jīng)常對數(shù)據(jù)進行更新 2. 小項目。小項目因為項目簡單而美工與程序員兼于一人的項目小項目。小項目因為項目簡單而美工與程序員兼于一人的項目PHP模板引擎模板引擎Smarty入門使用入門使用2、Smarty的配置的配置 include_once(Smarty/Smarty.class.php); /包含包含smarty類文件類文件$smarty = new S

18、marty(); /建立建立smarty實例對象實例對象$smarty$smarty-config_dir=Smarty/Config_File.class.php; / 目錄變量目錄變量$smarty-caching=false; /是否使用緩存,項目在調試期間,不建議啟用緩存是否使用緩存,項目在調試期間,不建議啟用緩存$smarty-template_dir = ./templates; /設置模板目錄設置模板目錄$smarty-compile_dir = ./templates_c; /設置編譯目錄設置編譯目錄$smarty-cache_dir = ./smarty_cache; /緩存

19、文件夾緩存文件夾/-/左右邊界符,默認為左右邊界符,默認為,但實際應用當中容易與,但實際應用當中容易與JavaScript相沖突相沖突/-$smarty-left_delimiter = ;$smarty-right_delimiter = ;Smarty_inc.phpPHP模板引擎模板引擎Smarty入門使用入門使用3、Smarty的應用:變量,循環(huán)的應用:變量,循環(huán)$smarty-assign(name, PHP100中文站); /進行模板變量替換$smarty-display(index.htm); / 該文件就是模板文件,應該在模板目錄下$nameindex.htmindex.php

20、引入我們配置的引入我們配置的Smarty_inc.php$smarty-assign(模板變量, 值(數(shù)組/變量);$smarty-display(模板名稱); PHP模板引擎模板引擎Smarty入門使用入門使用3、Smarty的應用:變量,循環(huán)的應用:變量,循環(huán)$smarty-assign(模板變量, 數(shù)組);數(shù)組是最常用的方式,可以幫助我們循環(huán)列表,和快速訪問打理數(shù)據(jù),如果要循環(huán)數(shù)組我們可以使用Smarty內置的方法sectionsection name=s loop=$stu$sectionelse 無內容/sectionPHP模板引擎模板引擎Smarty的變量操作符的

21、變量操作符學習目標學習目標1、什么是、什么是Smarty變量操作符?變量操作符?2、如何使用、如何使用Smarty變量操作符變量操作符3、介紹常用的、介紹常用的20個變量符個變量符PHP模板引擎模板引擎Smarty的變量操作符的變量操作符1、什么是、什么是Smarty變量操作符?變量操作符?php模板引擎smarty內置的一些操作函數(shù),我們稱之為變量操作符變量操作符,變量操作符可用于操作變量,自定義函數(shù)和字符。(跟我PHP中常用的PHP內部函數(shù)類似)他可以幫助我們完成很多比較實用的功能,如:首字母大寫,拆分,替換,截取 更像是我們提前寫好的一些PHP常用類.2、如何使用、如何使用Smarty變

22、量操作符變量操作符語法中使用|應用變量操作符,多個參數(shù)用: 分隔開來例子:$name|truncate:10:.截取前十個字符多則用.代替PHP模板引擎模板引擎Smarty的變量操作符的變量操作符3、介紹常用的、介紹常用的20個常用變量符個常用變量符capitalize 首字母大寫 count_characters 計算字符數(shù) cat 連接字符串 count_paragraphs 計算段落數(shù)count_sentences 計算句數(shù)count_words 計算詞數(shù)date_format 時間格式default 默認escape 轉碼indent縮進lower小寫 nl2br換行符替換成regex

23、_replace正則替換replace替換spacify插空string_format字符串格式化strip去除(多余空格)strip_tags去除html標簽truncate截取upper大寫wordwrap行寬約束$name|capitalize PHP模板引擎模板引擎Smarty內置函數(shù)內置函數(shù)學習目標學習目標1、foreach 數(shù)組的處理數(shù)組的處理2、include 多功能使用多功能使用3、IF條件語句的使用條件語句的使用4、literal strip 文本的處理技巧文本的處理技巧PHP模板引擎模板引擎Smarty內置函數(shù)內置函數(shù)1、foreach 數(shù)組的處理數(shù)組的處理 與我們在PHP

24、中的foreach用法類似,同樣是用來遍歷數(shù)組。在實際操作中與section 功能一樣,但foreach在Smarty一般用來處理一維數(shù)組。=無鍵值數(shù)組foreach from=$name item=idid: $id/foreach=無鍵值數(shù)組foreach key=j item=v from=$name $j: $v/foreachkey 鍵值item內容from 數(shù)組PHP模板引擎模板引擎Smarty內置函數(shù)內置函數(shù)2、include 多功能使用多功能使用include file=header.htminclude file=D:wwwhead.htminclude file=head.

25、htm title=Main Menu3、IF條件語句的使用條件語句的使用if $name=okelse/if同樣支持elseifPHP模板引擎模板引擎Smarty內置函數(shù)內置函數(shù)4、literal strip 文本的處理技巧文本的處理技巧 literal 數(shù)據(jù)將被當作文本處理,此時模板將忽略其內部的所有字符信息. 該特性用于顯示有可能包含大括號等字符信息的 javascript 腳本literal . /literal strip標記中數(shù)據(jù)的首尾空格和回車. 這樣可以保證模板容易理解且不用擔心多余的空格導致問題.strip./strip一般放在HTML代碼的開始和結束不建議大家把javasc

26、ript寫在頁面上PHP模板引擎模板引擎Smarty緩存應用緩存應用學習目標學習目標1、Smarty緩存的配置緩存的配置2、Smarty緩存的使用和清除緩存的使用和清除3、Smarty局部緩存局部緩存4、MYSQL與與Smarty的應用的應用PHP模板引擎模板引擎Smarty緩存應用緩存應用1、Smarty緩存的配置緩存的配置$smarty-cache_dir = /caches/; /緩存目錄$smarty-caching = true; /開啟緩存,為flase的時侯緩存無效$smarty-cache_lifetime = 60; /緩存時間2、Smarty緩存的使用和清除緩存的使用和清除$smarty-display(cache.tpl, cache_id); /創(chuàng)建帶ID的緩存$smarty-clear_all_cache(); /清除所有緩存$smarty-clear_cache(index.htm); /清除index.tpl的緩存$smarty-clear_cache(index.htm,cache_id); /清除指定id的緩存PHP模板引擎模板引擎Smarty緩存應用緩存應用3、Smarty局部緩存局部緩存insert 函數(shù)默認是不緩存的。并且這個屬性不能修改。in

溫馨提示

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

評論

0/150

提交評論