php empty(), isset(), is_null()函数用法实例
发布:smiling 来源: PHP粉丝网 添加日期:2014-09-13 14:22:15 浏览: 评论:0
在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(emptyempty($a));
- var_dump(emptyempty($b));
- var_dump(emptyempty($c));
- var_dump(emptyempty($d));
- var_dump(emptyempty($e));
- var_dump(emptyempty($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;
- emptyempty($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($id)) $id=1; - 若 id=0,id 也会为1
if(!isset($id)) $id=1; - 若 id=0,id 不会为1
可分开运行以下代码检测上述推断,代码如下:
- if(emptyempty($id)) $id=1;
- print $id; // 得到 1
- if(!isset($id)) $id=1;
- rint $id; //得到 0
is_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
Tags: empty isset is_null 函数用法
相关文章
- ·empty 和 is_null有什么区别?(2013-11-29)
- ·php empty()函数详细(2013-11-30)
- ·php Warning:strstr()[function.strstr]:Empty delimiter(2013-12-04)
- ·php使用empty()函数要注意事项(2014-01-05)
- ·PHP empty() isset() is_null() 区别与性能比较(2014-01-17)
- ·php中empty(), is_null(), isset()函数区别(2014-02-09)
- ·关于php函数isset和empty的一些误解(2014-06-11)
- ·再谈php中empty与isset区别详解(2014-09-13)
- ·PHP isset()函数与empty()函数区别(2014-09-19)
- ·为什么要在PHP中同时检查isset()和!empty()函数(2019-12-16)
- ·PHP中isset()和empty()函数有什么区别?(2020-01-31)
- ·PHP empty函数报错解决办法(2020-10-19)
- ·PHP5.5和之前的版本empty函数的不同之处(2021-02-19)
- ·PHP中检查isset()和!empty()函数的必要性(2021-11-07)
- ·PHP中的empty、isset、isnull的区别与使用实例(2021-11-13)
- ·php中isset与empty函数的困惑与用法分析(2021-12-02)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)