2011-09-02 91 views
0
$thisQuestion = array_filter($pollQuestions,function($q) use ($questDataArr){ 
         return $questDataArr[0] == $q["id"]; 
        }); 

因爲我在這裏使用2個變量,所以我使用了這個內聯函數。我如何創建一個回調函數並傳遞額外的參數?帶回調函數的array_filter

+1

您使用use()傳遞額外的參數,就像您所做的一樣。如果你向我們展示了這些數據類型的外觀,這將有所幫助。 – Galen

回答

2

如果我理解正確你的問題:

  • 你不想使用匿名函數
  • 你需要保持一定的狀態與它

的解決方案是一個功能創建一個類:

class MyCallback { 
    private $questDataArr; 
    public function __construct($questDataArr) { 
     $this->questDataArr = $questDataArr; 
    } 
    function callback($q) { 
     return $this->questDataArr[0] == $q["id"]; 
    } 
} 

array_filter($pollQuestions, array(new MyCallback($questDataArr), 'callback'));