我在寫一些接受關聯數組作爲參數的函數。檢查某些數組鍵是否被賦值
此陣列可以是:
- 空
- 僅具有一個元素。使用密鑰
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..
}
}
,如果我進入了數組參數就像在第二次檢查的異常始終拋出
最後兩個輸入是什麼使我困惑!儘管我的觀點是正確的,但爲什麼會拋出異常。