PHP 中的匿名递归函数
在 PHP 中,匿名函数(也称为 lambda 函数)的概念提供了一种便捷的方式来定义内联函数无需指定正式名称。然而,当涉及到递归时,匿名函数面临着独特的挑战。
问题:
当尝试创建递归匿名函数时,可能会出现函数名称未正确传递到递归中。出现此问题的原因是,与具有已定义名称的常规函数不同,匿名函数缺少对自身的引用。
解决方案:
要解决此问题,您需要通过匿名函数作为 use 语句中的引用。这可以通过在函数名称前添加与号 (&) 来实现,如以下代码所示:
<code class="php">$factorial = function( $n ) use ( &$factorial ) { if( $n <= 1 ) return 1; return $factorial( $n - 1 ) * $n; }; print $factorial( 5 ); // Output: 120</code>
通过传递匿名函数作为引用,您可以在递归调用和原始函数定义,允许它访问自己的内部状态。这使得递归能够按预期运行,并且您可以成功计算阶乘值。
以上是## 如何在 PHP 中实现递归匿名函数?的详细内容。更多信息请关注PHP中文网其他相关文章!