《兄弟連新版PHP影片教學》課程中,PHP(外文名稱:PHP: Hypertext Preprocessor,中文名稱:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。 PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的程式語言相比,PHP是將程式嵌入到HTML(標準通用標記語言下的一個應用)文件中去執行,執行效率比完全產生HTML標記的CGI要高許多; PHP還可以執行編譯後程式碼,編譯可以達到加密和最佳化程式碼運行,使程式碼運行更快。
課程播放網址:http://www.php.cn/course/358.html
該老師講課風格:
教師講課深入淺出,條理清楚,層層剖析,環環相扣,論證嚴密,結構嚴謹,用思維的邏輯力量吸引學生的注意力,用理智控制課堂教學進程。教學的技巧,充滿機智,各種教學方法、技巧信手拈來,運用自如,恰到好處,並絲毫不帶有雕琢的痕跡。
本影片中較為困難的應該是:PHP例外處理:
# 異常處理(又稱錯誤處理)功能提供了處理程序運行時出現的錯誤或異常情況的方法。
異常處理通常是防止未知錯誤產生所採取的處理措施。異常處理的好處是你不用再絞盡腦汁去考慮各種錯誤,這為處理某一類錯誤提供了一個很有效的方法,使程式設計效率大大提高。當例外被觸發時,通常會發生:
當前程式碼狀態被儲存
程式碼執行切換到預先定義的例外處理器函數
依照狀況,也許開始從儲存處理器的狀態開始執行程式碼,終止腳本執行,或從程式碼中另外的位置繼續執行腳本
PHP 5 提供了一個新的物件導向的錯誤處理方法。可以使用檢測(try)、拋出(throw)和捕獲(catch)異常。即使用try偵測有沒有拋出(throw)異常,若有異常拋出(throw),使用catch捕獲異常。
一個 try 至少要有一個對應的 catch。定義多個 catch 可以捕捉不同的物件。 php 會依照這些 catch 定義的順序執行,直到完成最後一個為止。而在這些 catch 內,又可以拋出新的異常。
1. 例外的使用
當一個例外被拋出時,其後的程式碼將不會繼續執行,PHP 會嘗試找出符合的 "catch" 程式碼區塊。如果一個異常沒有被捕獲,而且又沒用使用set_exception_handler() 作相應的處理的話,那麼 PHP 將會產生一個嚴重的錯誤,並且輸出未能捕獲異常(Uncaught Exception ... )的提示訊息。
拋出異常,但不捕獲它:
<?php ini_set('display_errors', 'On'); error_reporting(E_ALL & ~ E_WARNING); $error = 'Always throw this error'; throw new Exception($error); // 继续执行 echo 'Hello World'; ?>
上面的程式碼會得到類似這樣的一個致命錯誤:
Fatal error: Uncaught exception 'Exception' with message 'Always throw this error' in E:\sngrep\index.php on line 5 Exception: Always throw this error in E:\sngrep\index.php on line 5 Call Stack: 0.0005 330680 1. {main}() E:\sngrep\index.php:0
2. Try, throw 和catch
要避免上面這個致命錯誤,可以使用try catch捕獲掉。
處理處理程序應包含:
Try - 使用例外的函數應該位於 "try" 程式碼區塊內。如果沒有觸發異常,則程式碼將照常繼續執行。但是如果異常被觸發,會拋出一個異常。
Throw - 這裡規定如何觸發例外。每一個"throw" 必須對應至少一個"catch"
Catch - "catch" 程式碼區塊會捕獲異常,並建立一個包含異常訊息的物件
拋出異常並捕獲掉,可以繼續執行後面的程式碼:
<?php try { $error = 'Always throw this error'; throw new Exception($error); // 从这里开始,tra 代码块内的代码将不会被执行 echo 'Never executed'; } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(),'<br>'; } // 继续执行 echo 'Hello World'; ?>
在"try" 程式碼區塊偵測有沒有拋出「throw」異常,這裡拋出了異常。
"catch" 程式碼區塊接收到該異常,並建立一個包含異常訊息的物件 ($e)。
透過從這個exception 物件呼叫$e->getMessage(),輸出來自該異常的錯誤訊息
為了遵循「每個throw 必須對應一個catch」的原則,可以設定一個頂層的異常處理器來處理漏掉的錯誤。
以上是兄弟連新版PHP影片教學的資料分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!