PHP Notice 關閉的原因及如何關閉
在日常的開發中,經常會遇到 PHP Notice 的提示,告訴我們某些代碼的使用不規范,某些變量沒有初始化等等。有些開發者可能會認為這些提示并不是錯誤,只是在提醒我們代碼的規范性問題。但是,這些 Notice 提示會在某些場景下導致嚴重后果,比如和某些第三方庫或系統集成時,輸出的 Notice 是無法被處理的,整個系統可能會出現災難性的后果。
下面介紹如何關閉 PHP Notice 提示,同時提供一些實用的代碼示例。
如何關閉 PHP Notice 提示
關閉 PHP Notice 提示,有以下兩種方法:
方法一:修改 php.ini 配置文件
在 php.ini 配置文件中找到 error_reporting 配置項,修改為以下值:
error_reporting = E_ALL & ~E_NOTICE
這將關閉 PHP Notice 提示,并將其他所有錯誤信息都輸出。修改完畢后,重啟 PHP 服務即可生效。
方法二:使用代碼忽略 Notice 級別提示
在 PHP 代碼中,使用 error_reporting 函數和 ini_set 函數可以臨時關閉 Notice 級別提示。
示例代碼:
// 所有級別的錯誤都輸出
error_reporting(E_ALL);
// 或者 error_reporting(-1);
// 輸出除了 Notice 級別的錯誤
error_reporting(E_ALL & ~E_NOTICE);
// 關閉所有錯誤提示
error_reporting(0);
// 使用 ini_set 函數設置
ini_set('error_reporting', E_ALL & ~E_NOTICE);
ini_set('display_errors', 'Off');
ini_set('log_errors', 'On');
ini_set('error_log', '/var/log/php/error.log');
實用代碼示例
1.過濾 $_POST 和 $_GET 數據
開發階段,使用 $_POST['name'] 或者 $_GET['id'] 可能會出現 Notice,可以使用 isset 函數或者 empty 函數來避免 Notice 提示。
示例代碼:
if (isset($_POST['name'])) { // do something } if (!empty($_GET['id'])) { // do something }2.過濾未賦值變量 在函數中或者控制器中,有些變量可能是在后面代碼中賦值的,但是還是可能會出現 Notice。使用 isset 函數來判斷是否賦值可以避免 Notice 提示。 示例代碼:
function test() { $a = isset($_POST['name']) ? $_POST['name'] : ''; // do something } $name = isset($_POST['name']) ? $_POST['name'] : ''; // use $name3.過濾數組數據 使用數組時,一些元素可能沒有被定義,使用 isset 函數可以避免 Notice 提示。 示例代碼:
$arr = array('name' =>'john'); if (isset($arr['age'])) { echo $arr['age']; }總結 PHP Notice 提示可能在某些場景下導致災難性的后果,開發階段應及時發現并修復 Notice 提示,同時關閉 Notice 提示也是重要的安全措施。本文介紹了關閉 Notice 提示的兩種方法,并提供了一些實用的代碼示例,希望對 PHP 開發者有所幫助。
上一篇php nosql擴展
下一篇ajax和json怎么用