isset和empty的区别(PHP)

在微博上看到这个问题,作为入门PHP开发者,也有点模糊不清,做了个测试:

在一个对GET请求做处理的函数内部,加入以下代码:

if (isset($_POST)){
    echo '$_POST has been set in GET request';// 0
    echo var_dump($_POST);// 1
}else{
    echo '$_POST has not been set in GET request';
}

if(empty($_POST)){
    echo '$_POST is empty in GET request';// 2
}else{
    echo '$_POST is not empty in GET request';
}

输出结果是:(人工加入换行,序号跟代码后面的序号对应)

0:$_POST has been set in GET request

1:array(0)

2:$_POST is empty in GET request

所以用一个通俗的问答就可以区分isset和empty的区别:

Q1:钱包带了吗?(isset?)

A1:带了(TRUE)。没带(FALSE)。

Q2:钱包里有钱吗?(empty?)

A2:有钱(TRUE)。没钱(FALSE)。

原文地址:https://www.cnblogs.com/tara/p/2777187.html