600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > php用isset()判断变量是否定义的存在的坑

php用isset()判断变量是否定义的存在的坑

时间:2021-03-03 07:02:33

相关推荐

php用isset()判断变量是否定义的存在的坑

在写php程序时,我们通常用isset()来检测变量是否定义,但其中存在一个问题,看手册上对该方法的描述:

boolisset( mixed$var[, mixed$...] )

检测变量是否设置,并且不是NULL

如果已经使用 unset() 释放了一个变量之后,它将不再是isset()。若使用isset()测试一个被设置成NULL的变量,将返回FALSE。同时要注意的是一个NULL字节("\0")并不等同于 PHP 的NULL常数。

If multiple parameters are supplied thenisset()will returnTRUEonly if all of the parameters are set. Evaluation goes from left to right and stops as soon as an unset variable is encountered.

也就是被初始化成 NULL的变量,用改方法检测时也会返回false,例如:

<?php$var = null;$arr['key'] = null;if(isset($var)){echo 'set<br>';}else{echo 'no set<br>';}if(isset($arr['key'])){echo 'set<br>';}else{echo 'no set<br>';}

运行结果:

no setno set

当然这种情况是比较少见的,我们平时在初始化变量时尽量避免NULL,但有时在取数据库时无可避免的取回NULL,这种情况我们可以用array_key_exists()函数来判断某个字段是否被取出来了,比如:

<?php$arr['key'] = null;if(array_key_exists('key' , $arr)){echo 'set<br>';}else{echo 'no set<br>';}if(array_key_exists('key2' , $arr)){echo 'set<br>';}else{echo 'no set<br>';}

运行结果:

setno set

boolarray_key_exists( mixed$key, array$search)

array_key_exists()在给定的key存在于数组中时返回TRUEkey可以是任何能作为数组索引的值。array_key_exists()也可用于对象。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。