Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chap5 PHP程式設計進階 授課講師:.

Similar presentations


Presentation on theme: "Chap5 PHP程式設計進階 授課講師:."— Presentation transcript:

1 Chap5 PHP程式設計進階 授課講師:

2 學習重點 資料檔案的存取與網頁之間的傳遞  Cookie與Session  網址重新導向與網頁重新載入  網頁內容的快取控制
 引入檔的應用  檔案的管理

3 PHP的引入檔 若有經常要重複執行的程式區塊、定義的變數或是自訂的函數,都可以寫成引入檔案(俗稱程式庫),供應給需要的網頁程式來呼叫取用。所以,引入檔案就像是個副程式或函數。 PHP的引入檔並沒有特定的格式規範,只要利用require或include都可以直接將引入檔案讀取進來使用。 在PHP網頁程式設計中,提供有require()和include()可以用來將引入檔案導入主要的網頁程式裡。但使用上略有差異! 在php.ini檔案裡含有include_path參數可以用來設定引入檔案的預設路徑。如果要引入的檔案放置在不同的路徑裡,就必須在程式中描述清楚。

4 requird() 將引入檔讀入主要程式檔案內,整段引入檔案的內容是為主要程式的一部份。require()的語法為:

5 範例: 設計了一個名為「discount.php」,的引入檔案,在此網頁程式中,建立了一個名為discount的自訂函數(function)可從已知的單價($unit_price)、數量($qty)、與折扣($disc)等變數中,進行折扣後總價的計算與輸出。

6 名為「0517.php」的主要網頁程式檔案,提供了單價、數量、與折扣等三項資訊,然後,利用require函數將前述的引入檔(discount.php)讀入此主程式中,最後再進行discount函數的計算,其網頁程式內容與執行的結果如下:

7 include() 主程式裡使用include()來引入檔案時,一但主程式呼叫一次include(),就立即讀取一遍引入檔,若再次呼叫一次include(),便即刻再次讀取一遍引入檔。因此,若主程式裡呼叫了n次include(),則此include()所指示的引入檔就會被讀取n遍。 一般而言,在主要網頁程式裡若含有分歧控制或迴圈程式的設計,而且分歧與迴圈裡需要運用到引入檔時,就非常適合運用呼叫時才讀入引入檔的include()函數。

8 範例: 利用include(),設計攝氏轉換成華氏的計算。其中,必須將攝氏的數字先乘以9再除以5,最後再加上32。假設變數$c為攝氏溫度,則華氏溫度的計算公式應為$c*9/5+32。在此,我們建立一個名為temperatureCtoF.php的引入檔案,內含一個echo敘述與return敘述,其中return敘述可以傳回$c*9/5+32的值,網頁程式如下所示:

9 再建立一個名為0518.php的主要網頁程式,在程式中設定變數$c為攝氏溫度,並設定此變數的數據為32,然後,再設定變數$f為華氏溫度,並設定算為include(“temperatureCtoF.php”),意為引入溫度轉換程式後讀取回傳值,最後以echo敘述輸出轉換後的華氏溫度,程式如下所示:

10 require()與include()的其他差異性
include()提供有回傳值(return)的功能,但是require()函數並不容許有回傳值。 若引入檔的程式中有誤,譬如,甚至整個引入檔的儲存位置錯誤或根本就不存在,則若使用require()函數來進行引入檔案的引入時,會直接停止程式的執行;若使用的是include()函數來進行引入檔案的引入時,會先產生警告訊息並忽略錯誤而繼續執行後續的程式。若不希望顯示錯誤的訊息,則可以將php.ini檔案裡的display_errors=On的參數設定改成display_errors=Off。

11 include_once()與require_once()
除了require()與include()函數外,PHP還提供有require_once()與include_once()這兩個雷同的引入檔函數,可以防止進行重複引入檔案時,造成多次重覆讀取而使得常數或自訂函數重複定義的情形。 若不希望每次迴路的執行造成重複引入檔案時發生了重複定義常數或函數的衝突,則可以將原本的require()含數改成require_once(),或者include()函數改成include_once(),讓引入的檔案無論如何都只被引入一次而已。

12 第一次迴路時藉由require(“discount
第一次迴路時藉由require(“discount.php”)函數引入折扣運算檔案後,可以順利的進行discount這個自訂函數的運算,可是,第二次迴路時若再利用require(“discount.php”)函數進行引入檔案時,將發生無法重新宣告discount()這個自訂函數的錯誤。整個在利用瀏覽程式時,將出現錯誤顯示。

13 上述程式裡的require(“discount. php”)函數改寫成require_once“discount
上述程式裡的require(“discount.php”)函數改寫成require_once“discount.php”()函數,則即可避免上述的錯誤發生。


Download ppt "Chap5 PHP程式設計進階 授課講師:."

Similar presentations


Ads by Google