php empty(), isset(), is_null()函数用法实例
在php中empty(),isset(),is_null()三个函数在很多朋友看来都差不多,但我们简单想一下好像又不同,一个空值,一个是否是一个变量,是否为null,下面我来举例来说明.
很多人对于 PHP 的 empty(),isset() 及 is_null() 三个函数的用法比较模糊,网上的资料也很多,但未必能讲的清楚,下面给出一个测试实例,对于理解这三个函数的区别会有很大的好处.
测试的类型如下:
<?php $a ; $b = false; $c = '' ; $d = 0; $e = null; $f = array (); ?>empty(),代码如下:
<?php var_dump( empty empty ( $a )); var_dump( empty empty ( $b )); var_dump( empty empty ( $c )); var_dump( empty empty ( $d )); var_dump( empty empty ( $e )); var_dump( empty empty ( $f )); ?> // 输出 bool(true) bool(true) bool(true) bool(true) bool(true) bool(true)从代码中可以看出,只要数据类型是否为空或假,empty()就输出true.
isset(),代码如下:
<?php var_dump(isset( $a )); var_dump(isset( $b )); var_dump(isset( $c )); var_dump(isset( $d )); var_dump(isset( $e )); var_dump(isset( $f )); ?> // 输出phpfensi.com 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 empty ( $id )?print "It's empty ." :print "It's $id ." ; //结果:It's empty . print "<br>" ; !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 empty ( $id )) $id =1; print $id ; // 得到 1 if (!isset( $id )) $id =1; rint $id ; //得到 0is_null(),代码如下:
<?php 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函数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31064