为什么else-statement对isset不起作用?


Why is else-statement not working for 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'];
}

但是当我这样做的时候,它工作了。有人能告诉我为什么会这样吗?

试试这个:

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";
}

——由于

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

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

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

$_POST['name']正在被设置,但它包含空值,所以添加if((isset($_POST['name'])) and (empty($_POST['name']))