PHP——isset和empty

前言

对于这两个PHP函数大家肯定都很熟悉,但是其二者的区别又有那些呢?

对比

isset  | 检测变量是否被设置过

1. 变量不存在,返回FALSE

2. 变量存在且其值为NULL,返回FALSE

3. 变量存在且值不为NULL,返回TURE

 empty | 检测变量是否为空

1.变量存在且值为非空非零的值,返回FALSE

2.变量存在且值为空为零时,返回TRUE

PHP变量被认为空的几种情况

1."" (空字符串)

2.0 (作为整数的0)

3.0.0 (作为浮点数的0)

4."0" (作为字符串的0)

5.NULL

6.FALSE

7.array() (一个空数组)

8.$var; (一个声明了,但是没有值的变量)

例子

<?php
$var = 0;

// true
if (empty($var)) {
    echo 'true, $var为空';
}

// true
if (isset($var)) {
    echo 'true, $var被设置过';
}
?>

 由此可见,当判断一些变量的时候,不能一味的使用empty或者isset,应该根据实际的情况去使用,如:用户的昵称

如果用户的昵称就是0那你用empty判断不就出问题了嘛,但是如果用户的昵称为空字符串时,用isset判断也同样会有问题,

所以这种情况下就不能简单的用empty或者isset就进行判断。

原文地址:https://www.cnblogs.com/wangyang0210/p/10775055.html