为什么else语句不适用于isset?

时间:2014-03-21 07:53:59

标签: php post if-statement isset

我发现了一些奇怪的事情:

if(isset($_POST['name'])){
    echo $_POST['name'];
}
else{
    echo "please enter name";
}

在上面的例子中,else语句不起作用。

if(empty($_POST['name'])){
    echo "please enter name";
}
else{
    echo $_POST['name'];
}

但是当我这样做时,它会起作用。谁能告诉我为什么会这样?

3 个答案:

答案 0 :(得分:3)

试试这个:

isset() function is not able to fetch blank && zero value.

so always use empty() with it.

if(isset($_POST['name']) && !empty($_POST['name']))
{
    echo $_POST['name'];
}
else 
{
    echo "please enter name";
}

- 感谢

答案 1 :(得分:0)

$_POST['name']已设置但它包含空值,因此请添加if((isset($_POST['name'])) and (empty($_POST['name']))

答案 2 :(得分:0)

我假设您正在提交表单,其中字段name 为空,但它存在(或者换句话说 isset

issetempty之间的区别在于,后者假定$_POST['name']存在,但包含空值,例如""0,而第一个仅检查,如果 $_POST包含元素name

当您的表单包含字段时,它将被提交并因此被设置,无论它是否有任何内容(即为空)。