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)。