Notice …Undefined variable…

本不是想说这个的,因为这个问题太常规了。几乎所有接触PHP的人都会遇到过的。PHP的变量是不需要严格的显式声明的——就是你什么时候用,什么时候声明就行。


但是如果第一次使用一个没有被赋值的变量(非赋值语句),你就会遇到一个
Notice…Undefined variable…警告提示。


不信?那你试试看这个语句:


<?php
if($name) echo '出来,你这个警告提示!';
?>
不出意外的你一定会遇到的……嘿嘿!
但是会出意外的,如果你在PHP.ini设置中屏蔽了Notice这个等级的提示那么他就不会显示任何提示了。
这种错误不会影响程序的功能的,我们不用担心,
但是为了程序的严谨性考虑,我们尽量避免任何警告、错误等明显的程序缺陷。


在使用变量的时候尽量保证这个变量已经被赋值(被定义过),但是在一些判断语句中可能这样做就失去了判断的意义。例如我们要判断变量$name是否等于“刘德华”,在判断前这个$name可能根本就没有定义。如果我们要这样写:


<?php
if($name=='刘德华') echo '帅哥';
?>
在$name根本没有被定义过的情况下一定会收到一个 Notice的提示的,但是这样写:


<?php
if(isset($name)&& $name=='刘德华') echo '帅哥';
?>
问题就没有了,我们只是加了一个判断条件isset($name)来验证变量$name是否被定义,如果$name已经定义了if里面的第二个条件才会被触发,这时候就不会出现Notice的提示了。


注意,函数isset():如果参数变量已经被定义,返回真(true)否则返回假(false)。这个函数一定会被经常使用的,应该烂熟于心。



所以当我们遇到Notice…Undefined variable…有两种办法
第一种,修改PHP.ini的设置使其不显示Notice级别的提示信息
第二种,严谨我们的程序,使其没有办法显示——推荐这种做法!




其实还有一种在页面上定义错误的显示级别的方法类似预设值php.ini,说出来在大家控制不住php.ini的时候使用吧:

error_reporting();其中这个函数的参数大家可以参考手册或者查看PHP iask 的《error_reporting的参数》这篇文章!


原文:http://www.phpiask.com/?p=276

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值