PHP运行出现Notice : Notice: Undefined index的原因及解决办法
<span style="font-size:18px;"><?php
$u=$_GET['u'];
echo $u;
echo "<br>";
?></span>
直接运行的话会"Notice: Undefined index: u inF:wwwtest11.php on line3"的警告,但这是PHP 的提示而非报错,这里我未给$u赋予值,又把它输出,所以报错了,PHP 本身不需要事先声明变量即可直接使用,但是对未声明变量会有提示。在网站正式开始运行时,会把提示关了的
关闭 PHP 提示的方法
1.搜索php.ini:
error_reporting = E_ALL
改为:
error_reporting = E_ALL & ~E_NOTICE
2.还有个不是办法的办法就是
在每个文件头上加
error_reporting(0); 虽然不好弄但是可以解决问题
<span style="font-size:18px;">
<?php
error_reporting(0);
$u=$_GET['u'];
echo $u;
echo "<br>";
//加上error_reporting(0);就不会弹出警告了
?></span>
<span style="font-size:18px;">
<?php
//禁用错误报告
error_reporting(0);
//报告除了警告以外的所有错误
error_reporting(E_ALL & ~E_NOTICE);
//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);
//报告所有错误
error_reporting(E_ALL);
?></span>
3.foreach遍历的时候一定要判断一下
例子1:
foreach (class_uses_recursive($class) as $trait) {
if (method_exists($class, $method = 'boot'.class_basename($trait))) {
forward_static_call([$class, $method]);
}
}
例子二:先定义这个变量。
我的代码里有这个问题,是因为表单提交时提交到当前页面,我在当前页面里判断是否是提交表单,使用代码是
if($_POST['submit'])
{
//
}
本意是如果点击了submit这个按钮,就执行里面的语言,但是这句代码的实际意思是判断$_POST['submit']值是否存在。初始运行页面时,$_POST['submit']这个值是不存在的,就提示了 Notice: Undefined index:。
正确的方法是:
if(isset($_POST['submit']))
{
//
}
isset函数检测$_POST['submit']变量是否存在,存在则表示是表单提交了。
另外,需要注意,使用方法一修改了php.ini配置文件,虽然这个提示没有出现了,代码能执行,但是还是有可能出现问题的,比如
<input type="submit" name="submit" value="0" />
如果提交按钮的value是空或者0,提交后,虽然修改了配置文件,点击提交后,post过去的值是0,判断后,还是会当做false处理,一样不会执行里面的语句。
这个虽然是个很简单的问题,自己写代码太粗心,但是出现这样的warning,最好的办法还是检查代码,而不是修改配置信息,修改配置信息,还可能导致代码本身存在的问题没有被检测出来。
本文链接:http://78moban.cn/post/8206.html
版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!