Heim > Backend-Entwicklung > PHP-Tutorial > PHP Notice: undefined index 完美解决办法

PHP Notice: undefined index 完美解决办法

WBOY
Freigeben: 2016-06-13 10:54:54
Original
952 Leute haben es durchsucht

PHP Notice: undefined index 完美解决方法

平时用$_GET[‘xx’] 取得参数值时,如果之前不加判断在未传进参数时会出现这样的警告:

PHP Notice: undefined index xxx

虽然可以通过设置错误显示方式来隐藏这个提示,但是这样也有隐患,就是在服务器的日志中会记录这些提示,导致日志文件异常庞大!
下面是引用网上流行的解决方法:

首先,这个不是错误,是warning。所以如果服务器不能改,每个变量使用前应当先定义。

方法1:服务器配置修改
修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE

方法2:对变量进行初始化,规范书写(比较烦琐,因为有大量的变量)。但还没有找到好定义方法,望大家指教

方法3:每个文件头部加上:error_reporting(0); 如果不行,只有打开php.ini,找到display_errors,设置为display_errors = Off。以后任何错误都不会提示。
方法4 :做判断:isset($_GET["page"]) if-else判断

或者加上'@'表示这行如果有错误或是警告不要輸出
如:@$page=$_GET["page"]

方法5:file1.php文件把$xx变量付一个值,用post 传递给file2.php,
如果file2.php没有$xx的定义,而直接使用$yy=$xx; 系统就会报错:"undifined variaable $xx", 如果file2.php的文件开始用$xx="";定义,那么file1.php的$xx值就传不过来了!

file2.php里可以这样
if(!isset($xx)) $xx="";

但Jones认为,这些方法都不太方便。你不妨这样解决:

定义一个函数:

<span style="font-weight: inherit; font-style: inherit; font-size: 13px; vertical-align: baseline; background-color: transparent; color: #0000ff; padding: 0px; margin: 0px;"><span style="color: #000000; background-color: #ffffff;">function</span></span><span style="color: #000000; background-color: #ffffff;"> _get($str){    $val = !</span><span style="font-weight: inherit; font-style: inherit; font-size: 13px; vertical-align: baseline; background-color: transparent; color: #ff0000; padding: 0px; margin: 0px;"><span style="color: #000000; background-color: #ffffff;">empty</span></span><span style="color: #000000; background-color: #ffffff;">($_GET[$str]) ? $_GET[$str] : null;    </span><span style="font-weight: inherit; font-style: inherit; font-size: 13px; vertical-align: baseline; background-color: transparent; color: #0000ff; padding: 0px; margin: 0px;"><span style="color: #000000; background-color: #ffffff;">return</span></span><span style="color: #000000; background-color: #ffffff;"> $val;}</span>
Nach dem Login kopieren

然后在用的时候,直接用?_get('str')?代替 $_GET['str'] 就行啦~

是不是很方便?

1 楼 codeStu 2012-05-17  
PHP Notice: undefined index 完美解决办法
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage