检查参数是否包含具有特殊值的数组

时间:2015-03-04 22:49:37

标签: php arrays

我想检查我的函数的参数是否具有'sender'和'receiver'的值。这些值应由数组给出。

这是我检查它们的方式:

if (is_array($target) && !in_array(array('receiver', 'sender'), $target)) {
    exit('Please check the parameters. Allowed paramaters are: sender, receiver');
}

即使我的数组包含两个值,我总是从exit()获取消息。我的数组看起来像这样:

  

array(2){[0] => string(8)“receiver”[1] => string(6)“sender”   }

2 个答案:

答案 0 :(得分:1)

您正在检查sub array('receiver','sender')中是否存在actual array错误。

您必须单独检查两个项目是否在实际数组中退出。试试这个:

if (is_array($target) && !in_array('receiver',$target) && !in_array ('sender',$target)) {
    exit('Please check the parameters. Allowed paramaters are: sender, receiver');
}

答案 1 :(得分:0)

您不能拥有像in_array()这样的值的数组。试试这个:

if (is_array($target) && 
    !(in_array('receiver', $target) || in_array('sender', $target))) {
    exit('Please check the parameters. Allowed paramaters are: sender, receiver');
}