Notice …Undefined variable…

来源:互联网 发布:2015进出口数据 编辑:程序博客网 时间:2024/04/27 18:56

几乎所有接触PHP的人都会遇到过的。PHP的变量是不需要严格的显式声明的——就是你什么时候用,什么时候声明就行。

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

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

<?phpif($name) echo '出来,你这个警告提示!';?>

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

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

<?phpif($name=='刘德华') echo '帅哥';?>

在$name根本没有被定义过的情况下一定会收到一个 Notice的提示的,但是这样写:

<?phpif(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的参数》这篇文章!

原创粉丝点击