php用isset()判断变量是否定义的存在的坑
2015-12-19 19:15
746 查看
在写php程序时,我们通常用isset()来检测变量是否定义,但其中存在一个问题,看手册上对该方法的描述:
bool
isset ( mixed
检测变量是否设置,并且不是
如果已经使用 unset()
释放了一个变量之后,它将不再是 isset() 。若使用
isset() 测试一个被设置成
的变量,将返回
字节("\0")并不等同于 PHP 的
If multiple parameters are supplied then isset()
will return
也就是被初始化成 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 set
no 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>';
}
运行结果:
set
no set
bool
array_key_exists ( mixed
array_key_exists()
在给定的
。
array_key_exists() 也可用于对象。
bool
isset ( mixed
$var[, mixed
$...] )
检测变量是否设置,并且不是
NULL。
如果已经使用 unset()
释放了一个变量之后,它将不再是 isset() 。若使用
isset() 测试一个被设置成
NULL
的变量,将返回
FALSE。同时要注意的是一个
NULL
字节("\0")并不等同于 PHP 的
NULL常数。
If multiple parameters are supplied then isset()
will return
TRUEonly 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 set
no 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>';
}
运行结果:
set
no set
bool
array_key_exists ( mixed
$key, array
$search)
array_key_exists()
在给定的
key存在于数组中时返回
TRUE
。
key可以是任何能作为数组索引的值。
array_key_exists() 也可用于对象。
相关文章推荐
- PHP类中的七种语法说明
- 使用phpMyAdmin管理MySQL数据库
- Yii2.0 URL美化
- 使用Matplotlib绘制正余弦函数、抛物线
- PHP 正则表达式常用的函数
- php把从数据库读取出来的数据存放到数组里,然后数组不能直接使用,要转为字符串
- php中namespace与use
- PHP 常用的无限遍历方法
- zend studio一些常用配置
- PHP smarty模板技术
- php语言打开文件查看文件
- PHP 常用的header头部定义汇总
- php小结---当解析变量的值分别为 null, "" ,0 ,"0" ,1 时的不同情况
- PHP 环境安装
- PHP变量的声明及其作用域&静态变量
- thinkPHP实现在线人数的统计
- php实现面包屑导航例子分享
- STP的身世
- 用PHP实现一个高效安全的ftp服务器(一)
- PHP交易详情有感