zoukankan      html  css  js  c++  java
  • 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是服务器上这样设置,免得暴露太多文件路径等信息被黑客攻击,没有根源上解决问题,错误记录在日志里。

  • 相关阅读:
    IOS中常见的Operation —— NSOperation
    动态语言,别再说不
    CoreImage的使用及常见滤镜工具(一)
    【iOS】用Layer创建一个三维模型以及拖动
    前端基础-html、css
    mysql数据库—索引
    mysql数据库—用户管理、pymysql模块
    mysql数据库—函数、数据备份、流程控制
    mysql数据库基本操作2
    mysql数据库—事务、存储过程
  • 原文地址:https://www.cnblogs.com/html55/p/10799076.html
Copyright © 2011-2022 走看看