2015-09-04 27 views
7

私は実際にはPHPで関数型プログラミングを実験しています。私はいくつかの関数呼び出しについていくつかの精度を持っていたいと思います。関数型プログラミング - すべてのパラメータを持つ関数呼び出し

function addition($num1){ 
    return function ($num2) use ($num1){ 
     return $num1+$num2; 
    } 
} 
$add_2_to = addition(2); 
echo $add_2_to(3); 
echo $add_2_to(4); 

すべてのパラメータと付加機能を呼び出す方法があります:例として

? 私はチャンスがなくこの方法で試しました。

echo addition(2)(3); 
+0

ps乗算( '*'を使用)で、加算ではありません。 – naomik

答えて

7

あなたはかなり近いです。変数$ NUM1が返された関数内では使用できませんので、PHPはそのため、あなたが明示的に現在動作しませんuse

function addition($num1){ 
    return function ($num2) use ($num1){ 
     return $num1*$num2; 
    }; 
} 
$add_2_to = addition(2); 
echo $add_2_to(3); 
echo $add_2_to(4); 

あなたがecho addition(2)(3);を提案した構文を使用して、それをインポートする必要がなく、とき...レキシカルスコープを持っていませんPHP 7が到着します。現在のバージョンのphpでは、call_user_funcを使用して必要な処理を行うことができます。

echo call_user_func(addition(2), 3); 
+0

は完璧に@Orangepill!ありがとう –

関連する問題