屏蔽PHP默认设置中的Notice警告的方法

PHP的默认设置是显示Notice警告提示,这会造成页面无法正常显示出来。你有没定义的变量直接使用了。不过编PHP的时候本来就不像C++那么严格,编程的时候经常还会利用这个特点。
在把自己辛辛苦苦编写的PHP程序部署到服务器上的时候,相信这样的提示很多人都见过:

PHP Notice: Undefined variable
PHP Notice: Undefined index

看看吧,你有没定义的变量直接使用了。不过编PHP的时候本来就不像C++那么严格,编程的时候经常还会利用这个特点。PHP的默认设置是显示这些提示,这会造成页面无法正常显示出来。

//error_reporting(E_ALL);
error_reporting(E_ALL || ~E_NOTICE); //显示除去 E_NOTICE 之外的所有错误信息

第一个是代表显示所有错误,
第二个代表显示所有错误不显示警告,
我们只要把第二行前面加//,把第一行前面的//去掉即可。

附:各个错误报告详解
使用方法:

error_reporting(0);//禁用错误报告
error_reporting(E_ALL ^ E_NOTICE);//显示除去 E_NOTICE 之外的所有错误信息
error_reporting(E_ALL^E_WARNING^E_NOTICE);//显示除去E_WARNING E_NOTICE 之外的所有错误信息
error_reporting(E_ERROR | E_WARNING | E_PARSE);//显示运行时错误,与error_reporting(E_ALL ^ E_NOTICE);效果相同。
error_reporting(E_ALL);//显示所有错误
(0)

相关推荐

  • PHP提示Notice: Undefined variable的解决办法

    PHP默认配置会报这个错误,我的PHP版本是5.2.13,存在这个问题: Notice: Undefined variable 这就是将警告在页面上打印出来,虽然这是有利于暴露问题,但实现使用中会存在很多问题. 需要设置显示错误级别,来解决问题. 网络上的通用解决办法是修改php.ini的配置: 解决方法: 1) error_reporting设置: 找到error_reporting = E_ALL 修改为error_reporting = E_ALL & ~E_NOTICE 2) regis

  • php Notice: Undefined index 错误提示解决方法

    第一种方法:如果不影响程序的正常执行,可以采用屏蔽的方法 可以在代码的第一行 加上 error_reporting(E_ALL ^ E_NOTICE); 关闭掉 NOTICE错误的警告 第二种方法:定位到具体的行,根据提示解决.例如elseif ($_POST['istrue'] == 'ok'),如上代码,没有提交istrue这个,所以肯定是有问题的. 可以用如下代码解决上面先判断 复制代码 代码如下: if(array_key_exists( 'istrue',$_POST)) { if($

  • PHP新手NOTICE错误常见解决方法

    刚学习PHP,不久,一般就看看手册,和一本叫PHP和mysql web开发的. 最近在整留言板,刚才遇到个问题. 页面中,好多类似 Notice: Use of undefined constant title - assumed 'title' in D:\wamp\www\phpmysqlweb\bbs\list.php on line 17 页面很难看,很纠结啊,我用的是wamp集成包. 百度了下,看来好多朋友也有这个情况. Notice意思是使用了没有被声明的变量,但是程序不会影响使用.

  • 基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解

    AppServ,XAMPP,WAMP都是集成了apache,mysql,php的套装,使用起来比较方便,就不需要再去一个个的配置php,apache和mysql. 下载相应的安装包进行安装,不过对于php项目来说,WAMP会默认显示NOTICE信息,页面上一大段一大段的,比较难看.怎么去掉这些警告信息呢?先找到php.ini文件. 其路径是:(我的安装路径是D:\wamp)D:\wamp\bin\php\php5.3.10\php.ini ,打开该文件. 在文件中搜索,error_reporti

  • Notice: Trying to get property of non-object problem(PHP)解决办法

    我这里实际是调用了一个zend的数据库访问的方法,使用了fetchAll方法,但由于数据库中没有该记录,所以返回的对象是null,所以我就判断对象是否为null: 复制代码 代码如下: if($obj==null){ ... } 这么写的结果,就是产生了上面那个notice,也真是奇怪,对象为null,竟然不能访问了? 翻查资料后,发现,判断是否为null,需要这么判断: 复制代码 代码如下: if (isset($obj)) { echo "This var is set set so I w

  • 深入理解PHP原理之Session Gc的一个小概率Notice

    如果在ubuntu/Debian下, 采用apt安装的PHP, 那么在使用Session的时候, 就可能会有小概率遇到这个提示. 复制代码 代码如下: PHP Notice: session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13) in /home/laruence/www/htdocs/index.php on line 22 这是因为, 在PHP中, 如果使用fi

  • Notice: Undefined index: page in E:\PHP\test.php on line 14

    治標不治本的就是將php.ini內的reporting部份修改,讓notice不顯示 error_reporting = E_ALL; display all errors, warnings and notices 改成 error_reporting = E_ERROR & ~E_NOTICE & ~E_WARNING 不然 isset($_GET["page"])做個if-else判斷!! ----修正後原始碼如下---- if(isset($_GET["

  • PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明

    举例说明: 在Windows环境下:原本在php4.3.0中运行正常的程序,在4.3.1中为何多处报错,大体提示为:Notice:Undefined varialbe:变量名称. 例如有如下的代码: 复制代码 代码如下: if (!$tmp_i) { $tmp_i=10; } 在4.3.0中运行正常,在4.3.1中运行会提示Notice:Undefined varialbe:tmp_i 问题下下: 1.问题出在哪里? 2.应如何修改这段代码? 3.不改段代码,如何修改php.ini中的设置使原来

  • PHP使用Session遇到的一个Permission denied Notice解决办法

    如果在ubuntu/Debian下, 采用apt安装的PHP, 那么在使用Session的时候, 就可能会有小概率遇到这个提示. 复制代码 代码如下: PHP Notice: session_start(): ps_files_cleanup_dir:    opendir(/var/lib/php5) failed: Permission denied (13)    in /home/laruence/www/htdocs/index.php on line 22 这是因为, 在PHP中,

  • PHP运行出现Notice : Use of undefined constant 的完美解决方案分享

    Notice: Use of undefined constant ALL_PS - assumed 'ALL_PS' in E:\Server\vhosts\www.lvtao.net\global.php on line 50 Notice: Undefined index: EaseTemplateVer in E:\Server\vhosts\www.lvtao.net\libs\template.core.php on line 51 Notice: Use of undefined

随机推荐