2014-08-28 82 views
0

我有一個函數發生器,它使用一些閉包來個性化函數。 它返回一個函數,我怎麼能使它成爲一個遞歸函數?生成函數的遞歸php

Example function Generator($something){ 
    return function($element) use ($something){ 
     if($element=="whatever") 
     //dosomething 

    } 
    else{ 
     //call itself (the generated function) $this() like 
    } 


} 

生成的函數旨在用於具有兩個多維數組的過濾器。請回答我的問題,因爲我認爲它很有價值,但不回答替代方案,而是回答如何執行遞歸生成的函數。

回答

0

我的回答是:

modyfying發電機

function Gen($element,...&$function){ 
     return function($listItem) use ($element,...&$function){ 
     if(something)//dosomething; 
     else $function(); 
     } 
    } 

當調用,則:

$generated = function(){}; 
$generated = Gen('something',...$generated); 

我不喜歡它,請提供他人