php empty(), isset(), is_null()函数用法实例
2013-09-05 18:34
946 查看
在php中empty(), isset(), is_null()三个函数在很多朋友看来都差不多,但我们简单想一下好像又不同,一个空值,一个是否是一个变量,是否为null,下面我来举例来说明。
很多人对于 PHP 的 empty(),isset() 及 is_null() 三个函数的用法比较模糊,网上的资料也很多,但未必能讲的清楚,下面给出一个测试实例,对于理解这三个函数的区别会有很大的好处。
测试的类型如下:
$a;
$b = false;
$c = '';
$d = 0;
$e = null;
$f = array();
?>
empty()
代码如下
var_dump(empty($a));
var_dump(empty($b));
var_dump(empty($c));
var_dump(empty($d));
var_dump(empty($e));
var_dump(empty($f));
?>
// 输出
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
从代码中可以看出,只要数据类型是否为空或假,empty()就输出true。
isset()
代码如下
var_dump(isset($a));
var_dump(isset($b));
var_dump(isset($c));
var_dump(isset($d));
var_dump(isset($e));
var_dump(isset($f));
?>
// 输出
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
可以看出isset()只能用来判断是否为NULL和未定义。
警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined()函数。
当要 判断一个变量是否已经声明的时候 可以使用 isset 函数
当要 判断一个变量是否已经赋予数据且不为空 可以用 empty 函数
当要 判断 一个变量 存在且不为空 先isset 函数 再用 empty 函数
比如检测 $id 变量,当 $id=0 时,用empty() 和 isset() 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 $id 的值:
代码如下
$id=0;
empty($id)?print "It's empty .":print "It's $id .";
//结果:It's empty .
print "
";
!isset($id)?print "It's empty .":print "It's $id .";
//结果:It's 0 .
这意味着,我们在使用变量处理函数时,当该变量可能出现0的值,使用 empty() 要小心,这个时候用 isset 取代它更明智一些。
当一个php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:
代码如下
if(empty($id)) $id=1; - 若 id=0 ,id 也会为1
if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1
可分开运行以下代码检测上述推断:
代码如下
if(empty($id)) $id=1;
print $id; // 得到 1
if(!isset($id)) $id=1;
print $id; //得到 0
is_null()
代码如下
var_dump(is_null($a));
var_dump(is_null($b));
var_dump(is_null($c));
var_dump(is_null($d));
var_dump(is_null($e));
var_dump(is_null($f));
?>
// 输出
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(false)
is_null 字面意思了。
由此可见 empty() 可以用来判定所有的数据类型是否为空或假,而 is_null 与 isset 基本一样,只能用来判断是否为NULL和未定义。
后来给大家附一张表
下面一张表可以很清楚的说明他们之间的关系:
变量 empty is_null isset
$a=”” true false true
$a=null true true false
var $a true true false
$a=array() true false true
$a=false true false true
$a=15 false false true
$a=1 false false true
$a=0 true false true
$a=”0” true false true
$a=”true” false false true
$a=”false” false false true
很多人对于 PHP 的 empty(),isset() 及 is_null() 三个函数的用法比较模糊,网上的资料也很多,但未必能讲的清楚,下面给出一个测试实例,对于理解这三个函数的区别会有很大的好处。
测试的类型如下:
$a;
$b = false;
$c = '';
$d = 0;
$e = null;
$f = array();
?>
empty()
代码如下
var_dump(empty($a));
var_dump(empty($b));
var_dump(empty($c));
var_dump(empty($d));
var_dump(empty($e));
var_dump(empty($f));
?>
// 输出
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
从代码中可以看出,只要数据类型是否为空或假,empty()就输出true。
isset()
代码如下
var_dump(isset($a));
var_dump(isset($b));
var_dump(isset($c));
var_dump(isset($d));
var_dump(isset($e));
var_dump(isset($f));
?>
// 输出
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
可以看出isset()只能用来判断是否为NULL和未定义。
警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined()函数。
当要 判断一个变量是否已经声明的时候 可以使用 isset 函数
当要 判断一个变量是否已经赋予数据且不为空 可以用 empty 函数
当要 判断 一个变量 存在且不为空 先isset 函数 再用 empty 函数
比如检测 $id 变量,当 $id=0 时,用empty() 和 isset() 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 $id 的值:
代码如下
$id=0;
empty($id)?print "It's empty .":print "It's $id .";
//结果:It's empty .
print "
";
!isset($id)?print "It's empty .":print "It's $id .";
//结果:It's 0 .
这意味着,我们在使用变量处理函数时,当该变量可能出现0的值,使用 empty() 要小心,这个时候用 isset 取代它更明智一些。
当一个php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:
代码如下
if(empty($id)) $id=1; - 若 id=0 ,id 也会为1
if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1
可分开运行以下代码检测上述推断:
代码如下
if(empty($id)) $id=1;
print $id; // 得到 1
if(!isset($id)) $id=1;
print $id; //得到 0
is_null()
代码如下
var_dump(is_null($a));
var_dump(is_null($b));
var_dump(is_null($c));
var_dump(is_null($d));
var_dump(is_null($e));
var_dump(is_null($f));
?>
// 输出
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(false)
is_null 字面意思了。
由此可见 empty() 可以用来判定所有的数据类型是否为空或假,而 is_null 与 isset 基本一样,只能用来判断是否为NULL和未定义。
后来给大家附一张表
下面一张表可以很清楚的说明他们之间的关系:
变量 empty is_null isset
$a=”” true false true
$a=null true true false
var $a true true false
$a=array() true false true
$a=false true false true
$a=15 false false true
$a=1 false false true
$a=0 true false true
$a=”0” true false true
$a=”true” false false true
$a=”false” false false true
相关文章推荐
- PHP 的 empty(),isset() 还有 is_null() 这三个函数的用法讨论得已经很多了
- PHP中empty,isset,is_null用法和区别
- PHP empty(),isset()与is_null()的实例测试(转载)
- PHP empty(),isset()与is_null()的实例测试
- PHP empty(),isset()与is_null()的实例测试
- php中empty(), is_null(), isset()函数区别
- PHP empty(),isset()与is_null()的实例测试
- php中函数 isset(), empty(), is_null() 的区别
- php中函数 isset(), empty(), is_null() 的区别
- PHP empty(),isset()与is_null()的实例测试
- PHP empty(),isset()与is_null()的实例测试
- php中empty(), is_null(), isset()函数区别
- PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
- php中的isset(),empty(),is_null()函数比较总结
- PHP判断变量是否存在及函数isset() 、empty()与is_null的区别
- PHP empty(),isset(),is_null()的实例测试详解
- PHP empty(),isset()与is_null()的实例测试
- php中empty,is_null,isset三个函数的区别
- php中empty() isset() is_null()函数比较
- php中empty(), is_null(), isset()函数区别