我們在剛開發項目的時候,非常的需要錯誤提示,但是項目上線以後,當然不想把這些錯誤提示顯示出來對嗎?這就要做一些設定了,往往很多的PHP新手,都不知道怎麼設定?或者說設定的方法不對。
一、項目正在開發中的設定方法:
1、打開 php.ini
2、設定 error_reporting = E_ALL
3、設定 display_errors = On
二、項目真正上線後的設定方法:
1、打開 php.ini
2、設定 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
3、設定 display_errors = Off
三、如果不具備修改php.ini的權限,可以将以下兩行代碼直接加入php檔案中:
1、ini_set("display_errors", "On");
2、error_reporting(E_ALL | E_STRICT);
注意:
第一點,修改配置檔案php.ini後一定要重新開機服務。
第二點,error_reporting的值可以随意修改,建議按照你的項目開發情況來修改:是正在開發中?還是已經上線了?error_reporting具體的值有哪些?下面的拓展知識會講到。
拓展知識:
或許有一些看了上面的設定,也不是很明白,下面給大家再詳細的說一下:error_reporting代表錯誤級别,display_errors代表是否顯示錯誤提示。
error_reporting錯誤級别包括以下這些:
E_ALL - 所有錯誤和警告(包括PHP 5.4.0中的E_STRICT)
E_ERROR - 緻命的運作時錯誤
E_RECOVERABLE_ERROR - 幾乎緻命的運作時錯誤
E_WARNING - 運作時警告(非緻命錯誤)
E_PARSE - 編譯時解析錯誤
E_NOTICE - 運作時通知(這些通常是警告,從您的代碼中的錯誤,但它可能是故意的(例如,使用未初始化的變量和賴于它自動初始化為一個事實空字元串)
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_DEPRECATED - 警告代碼在将來的PHP版本中不起作用
E_USER_DEPRECATED - 使用者生成的棄用警告
error_reporting最常見的幾種設定:
E_ALL (顯示所有錯誤,警告和通知,包括編碼标準。)
E_ALL & ~E_NOTICE (顯示所有錯誤,通知除外)
E_ALL & ~E_NOTICE & ~E_STRICT 顯示所有錯誤,通知和編碼标準警告除外。)
E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (僅顯示錯誤)