5
我正在編寫一個接受可變數量參數的API方法。 API方法(見下文)使用func_get_args。我正在封裝API,並希望能夠傳遞關聯數組而不是將數組的鍵/值作爲參數傳遞;即filter(key1,value1,key2,value2 ...)
如何將數組傳遞給使用func_get_args檢索參數的函數
我有源代碼訪問API,但不幸的是我無法更改源代碼。
我看了call_user_func_array,我相信應該/會傳遞一個數組作爲一組參數(儘管不是一個關聯數組)。 filter
是一個對象的方法 - 我不知道如何傳遞一個方法作爲回調。我也不知道是否有一個乾淨的方式來包裝這個API。任何和所有的幫助表示讚賞。
<?php
public function &filter() {
$filter = new QueryFilter($this->queryhandler, $this);
$args = func_get_args();
$filter->applyFilter($this->getFilters($args));
return $filter;
}
'key1','key2'等是怎麼處理的? 'func_get_args'提供了一個數字索引的數組,其中的鍵是預定義的。 – Jon 2013-02-28 22:02:36
現在它是有道理的。添加了一個答案。 – Jon 2013-02-28 22:12:51
函數'filter'獲取數據庫字段名稱和字段值。這就是爲什麼我更喜歡使用關聯數組。關聯數組需要被操作,所以鍵和值將會在一個非關聯數組中,例如採取數組('key1'=>'value1','key2'=>'value2')並且創建數組('key1' 'value1','key2','value2'..),我可以做,但我不知道如何將該方法作爲回調函數傳遞。我不確定call_user_func_array是否是正確的方法。 – 2013-02-28 22:16:24