PHP錯誤等級

2022-08-05 11:21:17 字數 1788 閱讀 5011

f 很多情況下,我們的php檔案會出現一些非常難以排查的錯誤,比如輸出大白頁,調錯無從下手。這是可能php的錯誤等級遮蔽了一些非致命的錯誤,造成沒有任何錯誤提示。所以瞭解和熟悉php錯誤等級,或許能夠成為調錯的新方法。

php.ini中的錯誤報告等級預設情況下,php錯誤報告等級是e_notice, e_all表示報告所有非致命錯誤,因為這些錯誤可能會導致大問題(比如使用了未定義的變數)。

顯示所有的錯誤,除了提醒和編碼標準化警告。

錯誤報告是位欄位。可以將數字加起來得到想要的錯誤報告等級。

e_all - 所有的錯誤和警告(不包括 e_strict)

e_error - 致命性的執行時錯誤

e_warning - 執行時警告(非致命性錯誤)

e_parse - 編譯時解析錯誤

e_notice - 執行時提醒(這些經常是你**中的bug引起的,也可能是有意的行為造成的。)

e_strict - 編碼標準化警告,允許php建議如何修改**以確保最佳的互操作性向前相容性。

e_core_error - php啟動時初始化過程中的致命錯誤

e_core_warning - php啟動時初始化過程中的警告(非致命性錯)

e_compile_error - 編譯時致命性錯

e_compile_warning - 編譯時警告(非致命性錯)

e_user_error - 使用者自定義的錯誤訊息

e_user_warning - 使用者自定義的警告訊息

e_user_notice - 使用者自定義的提醒訊息

如果設定為:e_all | e_strict,則表示記錄所有的錯誤資訊,可能會導致**出現一大堆的錯誤**;但是對於程式設計師來說應該說是一件好事,可以把**優化到最優;一些非致命性錯誤雖然不影響程式的執行,但是會使php的負擔加重,通常是增加了**程序(例如iis的應用程式池)的負擔。

調整php中的錯誤報告

一旦把php設定成呈現出發生了哪些錯誤,你可能想調整錯誤報告的級別。可以將作為一個整體或獨立指令碼的php安裝設定成報告或忽略不同的錯誤級別。表7-1列出了大多數級別,但是它們一般是以下3類級別之一:

l    注意(notice),這不會阻止指令碼的執行,並且可能不一定是一個問題;

l    警告(warning),這指示一個問題,但是不會阻止指令碼的執行;

l    錯誤(error),這會阻止指令碼繼續執行(包括常見的解析錯誤,它從根本上阻止指令碼執行)。

表7-1  php的錯誤報告設定,與error_reporting()函式一起使用,或者在php.ini檔案中使用。注意,e_all的值不同於舊版的php並且不包括e_strict(但在php 6中存在)

編    號

常    量

報    告

e_error

致命的執行時錯誤(它會阻止指令碼的執行)

e_warning

執行時警告(非致命的錯誤)

(續)編    號

常    量

報    告

e_parse

解析錯誤

e_notice

注意(事情可能是或者可能不是一個問題)

e_user_error

使用者生成的錯誤訊息,由trigger_error()函式生成

e_user_warning

使用者生成的警告,由trigger_error()函式生成

e_user_notice

使用者生成的注意,由trigger_error()函式生成

e_strict

關於相容性和互操作性的建議

e_all

所有的錯誤、警告和建議

php nginx php fpm

2 安裝php tar xvf php 5 5 13 tar bz2 cd php 5 5 13 configure prefix usr local php with config file path etc enable inline optimization disable debug dis...

PHP PHP運算子

一 概論 a 在數學中的運算子和php當中的運算子可能有一些小小的區別,但是區別 不打,都是用來做計算的 唯一的區別是,php當中的運算子分類比較多 二 php當中運算的組成 a 1 2 3 b 運算子 c 1和2 運算元 d 運算子 e 3 結果 三 php當中運算子的分類 1 一元運算 只有一個...

php PHP EOL 常量

換行符 unix系列用 n windows系列用 r n mac用 r php中可以用php eol來替代,以提高 的源 級可移植性 php echo php eol windows 平臺相當於 echo r n unix linux 平臺相當於 echo n mac 平臺相當於 echo r 類似...