結果與準確結果有偏差的事件稱為錯誤。在 PHP 中,由於使用了不正確的編碼格式或實作了不可行的功能,可能會產生錯誤。根據根本原因和嚴重程度,PHP 的錯誤分為 4 種類型,例如:
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
讓我們討論 PHP 中的錯誤類型。
在 PHP 中,腳本需要遵循標準語法來開發可執行程式碼。當編寫的程式碼語法偏離標準時,就會發生語法錯誤。它也稱為解析錯誤。在編譯階段本身會檢查此錯誤並停止程式碼的執行。除非錯誤未修復且編譯完成且沒有任何語法缺陷,否則它不允許執行。用於表示編譯時解析(語法)錯誤的錯誤常數:E_PARSE
範例:
下面的程式碼片段用於為 PHP 變數賦值並在輸出視窗上顯示儲存的值。
<?php $Correct_Var = "Writing a code to demonstrate Syntax(Parse Error)"; Incorrect_Var = "The '$' symbol is missing for variable y!!!"; echo $Correct_Var; echo Incorrect_Var; ?>
輸出:
當字串與 $ 符號關聯時,PHP 編譯器會理解任何變數的存在。在上面的程式碼中,變數 In Correct_Var 的定義不滿足語法,因此編譯器會拋出程式碼語法錯誤並中斷執行。
當PHP 腳本嘗試處理任何無效訊息時,例如嘗試對不存在的檔案執行檔案操作或嘗試呼叫輸入值數量(即與存在的參數數量不同)的函數時,會出現此錯誤在呼叫函數定義中。這些都是嚴重錯誤,但不會停止程式的執行並最終顯示出意外的結果。用於表示執行時期警告而不終止腳本執行的錯誤常數:E_WARNING
範例:
下面的程式碼片段是為了在目前程式設計中呼叫另一個腳本檔案而編寫的。
<?php echo "Beginning of program execution"; echo "<br>"; echo "<br>"; $Correct_Var = "Writing a code to demonstrate Warning Error"; echo $Correct_Var; echo "<br>"; echo "<br>"; include ("MissingScript.php"); //Calling the script file which is not available echo "Ending of program execution"; ?>
輸出:
根據編程,編譯器成功編譯為程式碼並開始執行。執行繼續按順序進行。對於命令 include (“MissingScript.php”),它在預設路徑 …/usr/share/php 中尋找腳本,但未找到任何具有給定名稱的腳本。因此,它最終會產生該特定命令的警告訊息,並按設計執行其餘程式碼。
當腳本中開發了任何無效編碼時,PHP 就會遇到此錯誤。這被歸類為非嚴重錯誤,不會停止執行,最終會產生錯誤訊息。用於表示執行時間通知訊息的錯誤常數,由於存在無效代碼而導致:E_NOTICE
範例:
<?php echo "Beginning of program execution"; echo "<br>"; echo "<br>"; $Correct_Var = "Writing a code to demonstrate Notice Error"; echo $InCorrect_Var; //Try to display value stored in an undefined variable echo "<br>"; echo "<br>"; echo "Ending of program execution"; ?>
輸出:
編譯器無法辨識變數 $InCorrect_Var,因為它沒有在程式碼中定義。因此它會拋出通知錯誤。
由於任何無效命令(例如缺少呼叫函數的函數定義)而遇到的編譯時錯誤稱為致命錯誤。此類錯誤的嚴重程度非常關鍵,因此它不會讓執行繼續進行並拋出致命錯誤訊息作為輸出。用於表示觸發腳本終止的致命錯誤的錯誤常數:E_ERROR
範例:
下面的程式碼片段旨在呼叫 PHP 腳本中函數的示範應用。
<?php echo "Beginning of program execution"; echo "<br>"; echo "<br>"; $Correct_Var = "Writing a code to demonstrate Fatal Error"; echo $Correct_Var; echo "<br>"; echo "<br>"; UndefinedFunction();//Calling a function which is not defined in the script echo "Ending of program execution"; ?>
輸出:
由於程式碼是按照正確的編碼語法開發的,因此在編譯過程中不會捕獲任何錯誤。在執行階段,它無法解碼呼叫函數 UndefinedFunction() 的命令,因為它未在程式範圍內定義。因此,它會導致拋出致命錯誤訊息並停止程式的執行。
1. Error handling is easy in PHP. If any developer does not have access to the complete code for any application, it is recommended to use error handling functions in possible scenarios.
2. In order to avoid new error in the PHP programming, developer is expected to follow proper coding guidelines and stays alert towards probabilities of various types of errors, warnings and notices.
3. It is recommended not to allow any error or warning or notice to be displayed to the user. Hence the best practice for any safe PHP programming to ensure the required configuration to be available in php.ini file.
The desired value for the below variables are:
error_reporting as ' E_ALL' display_errors as 'Off' log_errors as 'On'
The below code can be included in any PHP script to configure the desired values in the php.ini file:
error_reporting(E_ALL); ini_set('display_errors','0'); ini_set('log_errors','1');
4. PHP incorporates the feature to enable developer to write own customized error handling functions.
This function needs to be designed with some specific guidelines as follows:
Function should be capable of handling minimum of two input parameters: error message and error level and maximum of 5 input parameters by including the optional parameters such as line number, file and error context.
以上是PHP 中的錯誤類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!