php函数isset,empty,is_null区别详解

php笔记 2019年03月02日

isset,empty,is_null函数用来判断php变量是否定义,空值,false,null等情况,本篇笔记对三个函数区别进行了详细的介绍

函数功能

isset:
检测一个或多个变量是否存在并且非null,当传入多个参数时,从左至右计算,全部参数都存在并且非null时才返回true,计算时遇到不存在或值为null的参数立即停止计算并返回false。
empty:
检测一个变量是否为空,当一个变量不存在,或者它的值等同于false,empty()将返回true。
is_null:
检测变量是否为null,如果为null,返回true,如果变量不存在,返回true并产生Notice: Undefined variable...

范例

<?php
/**
 * Created by PhpStorm.
 * User: jmsite.cn
 * Date: 2019/3/2
 * Time: 16:15
 */

var_dump(isset($a));
var_dump(empty($a));
var_dump(is_null($a));
echo "\n";
$a = null;
var_dump(isset($a));
var_dump(empty($a));
var_dump(is_null($a));
echo "\n";
$a = "a";
var_dump(isset($a));
var_dump(empty($a));
var_dump(is_null($a));

以上代码会输出

bool(false)
bool(true)

Notice: Undefined variable: a in E:\repository\work\study\test0302.php on line 11
bool(true)

bool(false)
bool(true)
bool(true)

bool(true)
bool(false)
bool(false)

php对null和空值的定义

以下情况变量被认为是 NULL:
1.被赋值为 NULL
2.尚未被赋值
3.unset()
以下值被认为是空值,等同于false:
1."" (空字符串)
2.0 (整数0)
3.0.0 (浮点数0)
4."0" (字符串0)
5.NULL
6.FALSE
7.array() (空数组)
8.$var; (声明了但是没有赋值的变量)