首页 > Web开发 > 详细

PHP提示 Notice: Undefined variable

时间:2019-05-01 10:47:11      阅读:155      评论:0      收藏:0      [点我收藏+]

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");  如下:

<?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

技术分享图片

 

(跑个题:如果页面中include某个不存在的文件,方法2:页面是不会Warning的,方法3:还是有Warning的,说明,方法2、方法3不是等效的,虽然都是E_ALL & ~E_NOTICE

 

 上述三种方法,任意一种方法都可以解决这个问题(浏览器端不输出Notice: Undefined variable,同时日志里也不记录这个问题)。

但是,如果是在php.ini中,设置display_errors = Off,这样也不显示,但是日志里会有很多notice的记录(我的日志是开发环境默认的在apache的error.log文件中)

技术分享图片

为什么呢?因为display_errors = Off是服务器上这样设置,免得暴露太多文件路径等信息被黑客攻击,没有根源上解决问题,错误记录在日志里。

PHP提示 Notice: Undefined variable

原文:https://www.cnblogs.com/html55/p/10799076.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!