【发布时间】:2013-10-04 00:38:02
【问题描述】:
我正在编写某种接受关联数组作为参数的函数。
这个数组可以是:
- 空
- 只有一个元素。使用密钥
pageParam或wrapperClass。 - 有两个元素。必须使用
pageParam和wrapperClass键入。
现在我已经编写了这些检查以确保:
- 数组不超过 2 个元素。
- 该数组没有除
pageParam和wrapperClass之外的任何元素
问题是,我的第二次检查没有正常工作。这是我的代码:
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..
}
}
如果我输入数组参数,第二次检查中的异常总是抛出:
array("dummyKey"=>"dummyValue")array("dummyKey1"=>"dummyValue1", "dummyKey2"=>"dummyValue2")-
array("pageParam"=>"test")或array("wrapperClass"=>"wrapper_class") array("pageParam"=>"test", "wrapperClass"=>"wrapper_class")
最后两个输入让我感到困惑!尽管我的论点是正确的,但为什么会引发异常。
【问题讨论】:
标签: php arrays function arguments associative-array