2010-12-29 8 views
0

以下のコードを参照してください。PHPのラムダスタイル関数

$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);'); 
echo "New anonymous function: $newfunc\n"; 
echo $newfunc(2, M_E) . "\n"; 

// outputs 
// New anonymous function: lambda_1 
// ln(2) + ln(2.718281828459) = 1.6931471805599 

$ newfuncを印刷すると、どのようにlambda_1が出力されるのか、誰でも知ることができますか? と2回目に別の出力。

DEMO

+0

私は間違っているか分かりませんか? –

+0

何も間違っていない...ちょうどそれがどのように働いたのか理解できませんでした。あなたが私を助けてくれることを願います。 –

+0

正確にはどういう意味ですか?関数のどの部分があなたの質問ですか? –

答えて

3

などちょうどその無名関数が内部lambda_1命名されている。その、lambda_2、 ですから、最初のエコー文は「新しい匿名関数を:lambda_1」を与える

関数自体は、文字列を返して、したがって、2番目のecho文(echo $newfunc(2, M_E) . "\n"; )はln(2) + ln(2.718281828459) = 1.6931471805599

+0

@ JP19:ありがと...たくさん –