我在写一些接受关联数组作为参数的函数。检查某些数组键是否被赋值
此阵列可以是:
- 空
- 仅具有一个元素。使用密钥
pageParam
或wrapperClass
。 - 有两个元素。必须键入
pageParam
和wrapperClass
。
现在我已经写这些检查,以确保:
- 阵列是不大于2个元素。
- 数组没有其他任何元素比
pageParam
和wrapperClass
的问题是,我的第二次检查工作不正常。这里是我的代码:
array("dummyKey"=>"dummyValue")
array("dummyKey1"=>"dummyValue1", "dummyKey2"=>"dummyValue2")
array("pageParam"=>"test")
或者array("wrapperClass"=>"wrapper_class")
array("pageParam"=>"test", "wrapperClass"=>"wrapper_class")
:
public function init_paginator(array $parameters = array())
{
if(!empty($parameters))
{
// This check works
if(count($parameters) > 2)
{
throw new \Exception("Paginator only accepts 2 elements in array: pageParam and wrapperClass.");
}
// This check does not work, even if its condition is satisfied
if(!in_array(array_keys($parameters), array('pageParam', 'wrapperClass')))
{
throw new \Exception("Paginator only accepts 2 elements in array: pageParam and wrapperClass.");
}
// Code..
}
}
,如果我进入了数组参数就像在第二次检查的异常始终抛出
最后两个输入是什么使我困惑!尽管我的观点是正确的,但为什么会抛出异常。