PHP提示 Notice: Undefined variable


PHP提示Notice: Undefined variable,意思是:你的程序中有未定義的變量

為什么在其他地方好好的程序,換個環境報這個Notice,因為php.ini提醒級別設置的問題

場景復原:

舉例,打開php.ini配置文件,搜索error_reporting,讓這個配置的值如下圖

重啟apache服務器

新建php文件,代碼如下:

<?php
header("Content-type:text/html;charset=UTF-8");
echo $aaa;
?>

就是程序在用到變量$aaa的時候,卻發現$aaa沒有被定義過。

那怎么解決呢?

方法1:對自己要求嚴格一點,每個變量都聲明下,而不是直接用,代碼加一句,如下:

<?php
header("Content-type:text/html;charset=UTF-8");
$aaa = null; //新加的
echo $aaa;
?>

方法2:文件中設置不提醒notice,代碼頭部加上ini_set("error_reporting",E_ALL & ~E_NOTICE);  【注意:E_ALL & ~E_NOTICE是不帶引號的,不是字符串!!!】如下:

<?php
ini_set("error_reporting",E_ALL & ~E_NOTICE);
header("Content-type:text/html;charset=UTF-8");
echo $aaa;
?>

方法3:修改php.ini配置,重啟服務器error_reporting = E_ALL & ~E_NOTICE

 

 

 上述三種方法,任意一種方法都可以解決這個問題(瀏覽器端不輸出Notice: Undefined variable,同時日志里也不記錄這個問題)。

但是,如果是在php.ini中,設置display_errors = Off,這樣也不顯示,但是日志里會有很多notice的記錄(我的日志是開發環境默認的在apache的error.log文件中)

為什么呢?因為display_errors = Off是服務器上這樣設置,免得暴露太多文件路徑等信息被黑客攻擊,沒有根源上解決問題,錯誤記錄在日志里。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM