PHP 中函数 isset(), empty(), is_null() 的区别

释放双眼,带上耳机,听听看~!

使用 PHP 进行开发的时候,经常会用到 isset(), empty(), is_null() 这几个函数对数据进行判断,但是这是哪个函数的具体区别其实没有很好的掌握。下面我们详细讲解一下:

NULL

什么是 NULL,当你开始写 PHP 代码的时候,直接用了未定义厄一个变量

echo $var + 3;  //使用这个变量出现:Notice: Undefined variable: var in

如果将其改写成:

$var = NULL;
echo $var + 3;   //这样就不会有问题了

所以变量最好初始化,即使没有,可以将NULL赋给变量,表示这个变量已经定义但没有值,属于 NULL 类型。

is_null()

当满足下面三种情况时,is_null() 将返回 TRUE,其它的情况返回 FALSE

变量没有被赋值
变量被赋值为NULL
变量未定义,相当于 unset()
具体一些例子:

$var = NULL;
var_dump(is_null($var)); // TRUE
$var1;
var_dump(is_null($var1)); // TRUE  Notice: Undefined variable
$num = 520;
unset($num);
var_dump(is_null($num));  //TRUE Notice: Undefined variable
var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable

$var = 0; is_null($var);     // FALSE
$var = FALSE; is_null($var); // FALSE
$var = '';  is_null($var);   // FALSE

isset()

检测已设定,并且不是NULL。如果没有设置变量,变量未赋值,或变量被设为 NULL,isset() 函数就返回 NULL。

正好和 is_null() 函数相反,is_null() 为 TRUE 的情况在 isset() 中就为 FALSE。

如果传递多个参数,将取交集。即所有参数全部符合 isset() 时才返回 TRUE。

$var = NULL; isset($var); // FALSE 当一个变量
被赋值为NULL时,就表示这个变量没有值

$var = 0; isset($var);     //   TRUE
$var = FALSE; isset($var); // TRUE
$var = '';  isset($var); //  TRUE
isset($some_undefined_var); //  FALSE Undefined variable

可以看出 isset() 着重检测一个 变量是否设置和这个变量是否有具体的值,当变量满足这两种情况时 isset() 返回TRUE

empty()

判读变量是否为空。相当于 (!is_set($var) || !$var),来看一些具体例子:

$var = NULL; empty($var); // TRUE
$var = 0; empty($var); // TRUE
$var = FALSE; empty($var); // TRUE
$var = '';  empty($var); // TRUE
empty($some_undefined_var); // TRUE

empty() 为 TRUE 的情况,若变量不存在,或者变量存在且其值为””、0、”0″、NULL、FALSE、array()、var $var; 以及没有任何属性的对象,则返回 TURE。

一般如 !empty() 的判断,就是变量存在,且值不为 “”、0、”0″、NULL、FALSE、array() 以及只是单纯定义一个变量 $var。

给TA打赏
共{{data.count}}人
人已打赏
php笔记

PHP 文件上传与下载

2019-3-29 12:24:35

php笔记

$_POST,$HTTP_RAW_POST_DATA 和 php://input 的区别

2019-3-29 16:57:30

2 条回复 A文章作者 M管理员
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索