php用isset()判断变量是否定义的存在的坑
来源:互联网 发布:apache 双向认证 编辑:程序博客网 时间:2024/06/05 19:25
在写php程序时,我们通常用isset()来检测变量是否定义,但其中存在一个问题,看手册上对该方法的描述:
bool isset ( mixed
$var
[, mixed$...
] )检测变量是否设置,并且不是 NULL
。
如果已经使用 unset()释放了一个变量之后,它将不再是 isset() 。若使用isset() 测试一个被设置成 NULL
的变量,将返回 FALSE
。同时要注意的是一个 NULL
字节("\0")并不等同于 PHP 的 NULL
常数。
If multiple parameters are supplied then isset()will return TRUE
only 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
bool array_key_exists ( mixed
$key
, array$search
)array_key_exists()在给定的 key
存在于数组中时返回 TRUE
。 key
可以是任何能作为数组索引的值。array_key_exists() 也可用于对象。
0 0
- php用isset()判断变量是否定义的存在的坑
- PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
- PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
- PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
- PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
- isset 判断变量是否存在的时候对于0是生效的
- 【PHP】用isset检测一个变量是否存在
- php 对传递过来的变量判断是否存在
- PHP中isset(变量)和直接判断变量的区别
- PHP 常量 变量 函数是否定义的判断
- php中的 三个判断变量的函数 empty is_null, isset
- JS中如何判断变量是否为空,有和PHP一样的isset()和empty()函数么?
- php isset 和 array_key_exists 检查数组中是否存在某值的区别
- php filter_has_var 判断变量是否存在函数
- PHP判断变量是否存在并且己赋值安全的写法
- 判断变量是否不为空,函数isset()、!empty()与!is_null()的比较
- PHP下常见的检查函数(变量是否存在,文件是否存在 函数是否存在 方法是否存在)
- PHP判断键值数组是否存在,使用empty或isset或array_key_exists
- 黑马程序员——异常
- 魔王语言解释(数组实现栈和队列)
- 成员变量和局部变量
- Java中equals和==的区别
- BZOJ-1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法+乱搞
- php用isset()判断变量是否定义的存在的坑
- 字符串按照一定规则分开(比方字母和数字分开)
- ServletContextListener
- 第十四周项目3----验证二叉排序树相关算法
- 人工神经网络之乳腺癌识别
- Spring 开启Annotation <context:annotation-config> 和 <context:component-scan>诠释及区别
- 获取图像像素点的概率分布图
- java初始化顺序
- bzoj 3172(AC自动机)