Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP检查变量中的数组索引是否有值| isset()始终返回true_Php_Arrays - Fatal编程技术网

PHP检查变量中的数组索引是否有值| isset()始终返回true

PHP检查变量中的数组索引是否有值| isset()始终返回true,php,arrays,Php,Arrays,我有一个名为$vars的变量,它包含一个随表单一起提交的数组: Array ( [name] => Sample Name [email] => test@test.com [job_role] => [telephone_number] => telephone number [comment] => comment ) 如何检查作业\u角色索引是否包含值? 我试过: if (in_array('', $vars)){

我有一个名为
$vars
的变量,它包含一个随表单一起提交的数组:

Array
(
    [name] => Sample Name
    [email] => test@test.com
    [job_role] => 
    [telephone_number] => telephone number
    [comment] => comment
)
如何检查
作业\u角色
索引是否包含值?


我试过:

if (in_array('', $vars)){
  echo "Job role can't be empty";
} else {
  echo "Job role submitted";
}
但这适用于整个数组,而不仅仅是
job\u角色
索引

此外,我尝试:

if (isset($vars['job_role'])){
  echo "match found";
} else {
  echo "nothing there";
}
但即使我没有提交任何东西,它也会返回“找到匹配项”

为什么
isset()
总是返回true?

您可以使用检查条目是否为空:

if (empty($vars['job_role'])) {
    echo "Job role can't be empty";
} else {
    echo "Job role submitted";
}
因为
isset()
检查定义的值(未设置)是否为空。在您的代码中,
$vars['job_role']
可能是一个空字符串,因此,它已定义,但它是空的。

您可以使用检查条目是否为空:

if (empty($vars['job_role'])) {
    echo "Job role can't be empty";
} else {
    echo "Job role submitted";
}

因为
isset()
检查定义的值(未设置)是否为空。在您的代码中,
$vars['job\u role']
可能是一个空字符串,因此,它被定义了,但它是空的。

ehemmm。。。为什么要投否决票?对“有人能帮忙”这个问题的答案是“是的”,但这可能不是你真正想问的问题。这里的问题有利于集中和具体。问“请帮助我”的问题往往寻求高度本地化的指导,或者在某些情况下,寻求持续或私人的帮助,这不适合我们的问答形式。它也是相当模糊的,最好用一个更具体的问题来代替。请阅读。@BareFeet
isset()
检查定义的值(已设置)是否为空。在您的代码中,
$vars['job_role']
可能是一个空字符串,因此,它已定义,但它是空的。@halfer很抱歉让您再次尝试编辑我的问题。我之所以问“有人能帮忙吗”只是因为我想礼貌一点。读了这篇文章后,我明白了为什么我不应该这么做。我会记住这一点。非常感谢。此外,我重新编写了我的问题,使我的问题更清楚。我希望现在有人会积极接受:)嗯。。。为什么要投否决票?对“有人能帮忙”这个问题的答案是“是的”,但这可能不是你真正想问的问题。这里的问题有利于集中和具体。问“请帮助我”的问题往往寻求高度本地化的指导,或者在某些情况下,寻求持续或私人的帮助,这不适合我们的问答形式。它也是相当模糊的,最好用一个更具体的问题来代替。请阅读。@BareFeet
isset()
检查定义的值(已设置)是否为空。在您的代码中,
$vars['job_role']
可能是一个空字符串,因此,它已定义,但它是空的。@halfer很抱歉让您再次尝试编辑我的问题。我之所以问“有人能帮忙吗”只是因为我想礼貌一点。读了这篇文章后,我明白了为什么我不应该这么做。我会记住这一点。非常感谢。此外,我重新编写了我的问题,使我的问题更清楚。我希望现在有人会积极接受:)