PHP Notice: undefined index xxx
雖然可以通過設(shè)置錯(cuò)誤顯示方式來隱藏這個(gè)提示豺憔,但是這樣也有隱患,就是在服務(wù)器的日志中會(huì)記錄這些提示稠炬,導(dǎo)致日志文件異常龐大焕阿!
下面是引用網(wǎng)上流行的解決方法:
首先,這個(gè)不是錯(cuò)誤首启,是warning暮屡。所以如果服務(wù)器不能改,每個(gè)變量使用前應(yīng)當(dāng)先定義毅桃。
方法1:服務(wù)器配置修改
修改php.ini配置文件褒纲,error_reporting = E_ALL & ~E_NOTICE
方法2:對變量進(jìn)行初始化,規(guī)范書寫(比較煩瑣钥飞,因?yàn)橛写罅康淖兞浚┹郝印5€沒有找到好定義方法,望大家指教
方法3:每個(gè)文件頭部加上:error_reporting(0); 如果不行读宙,只有打開php.ini,找到display_errors彻秆,設(shè)置為display_errors = Off。以后任何錯(cuò)誤都不會(huì)提示。
方法4 :做判斷:isset($_GET["page"])? ? ? if-else判斷
或者加上'@'表示這行如果有錯(cuò)誤或是警告不要輸出
如:@$page=$_GET["page"]
方法5:file1.php文件把$xx變量付一個(gè)值唇兑,用post 傳遞給file2.php酒朵,
如果file2.php沒有$xx的定義,而直接使用$yy=$xx; 系統(tǒng)就會(huì)報(bào)錯(cuò):"undifined variaable $xx", 如果file2.php的文件開始用$xx="";定義扎附,那么file1.php的$xx值就傳不過來了蔫耽!
file2.php里可以這樣
if(!isset($xx)) $xx="";
但這些方法都不太方便。你不妨這樣解決:
定義一個(gè)函數(shù):
function_get($str){? ? $val = !empty($_GET[$str]) ? $_GET[$str] : null;return$val;}
然后在用的時(shí)候留夜,直接用_get('str')代替 $_GET['str'] 就行啦~
是不是很方便匙铡?