array_key_exists无法正常工作

时间:2015-11-05 14:46:00

标签: php

我想检查数组中的特定索引是否存在。我使用此代码:

 if(array_key_exists('resource_id', $_POST['resource_id']) == false)
 {
      $_POST['resource_id'] = 'undefined'; 
 }

$_POST['resource_id']是我的数组的一个字段,我从js代码传递给ajax请求。现在的问题是,在某些情况下,我无法通过resource_id字段,我需要将其作为undefined在我的条件中作为上面的代码加价。
array_key_exists将此错误返回给我:

  

消息:array_key_exists()期望参数2为数组,给定

为null

我做错了什么?

3 个答案:

答案 0 :(得分:5)

如果我很清楚,'resource_id'并不是一直存在的 所以你要测试的是它是否存在于$ _POST数组中:

if(array_key_exists('resource_id', $_POST) == false)
{
     $_POST['resource_id'] = 'undefined'; 
}

答案 1 :(得分:1)

如果您只使用$ _POST执行array_key_exists,这可能会有效,但为了简单起见,我建议:

if(!isset($_POST['resource_id']){
    $_POST['resource_id'] = 'undefined';
}

答案 2 :(得分:0)

array_key_exists的第二个参数应该只是数组,所以在你的情况下,它将是

if(array_key_exists('resource_id', $_POST) == false)
{
     $_POST['resource_id'] = 'undefined'; 
}