首页  >  文章  >  后端开发  >  ## 如何在 PHP 中实现递归匿名函数?

## 如何在 PHP 中实现递归匿名函数?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-25 07:54:29283浏览

## How Can You Implement Recursive Anonymous Functions in PHP?

PHP 中的匿名递归函数

在 PHP 中,匿名函数(也称为 lambda 函数)的概念提供了一种便捷的方式来定义内联函数无需指定正式名称。然而,当涉及到递归时,匿名函数面临着独特的挑战。

问题:

当尝试创建递归匿名函数时,可能会出现函数名称未正确传递到递归中。出现此问题的原因是,与具有已定义名称的常规函数​​不同,匿名函数缺少对自身的引用。

解决方案:

要解决此问题,您需要通过匿名函数作为 use 语句中的引用。这可以通过在函数名称前添加与号 (&) 来实现,如以下代码所示:

<code class="php">$factorial = function( $n ) use ( &amp;$factorial ) {
    if( $n <= 1 ) return 1;
    return $factorial( $n - 1 ) * $n;
};

print $factorial( 5 ); // Output: 120</code>

通过传递匿名函数作为引用,您可以在递归调用和原始函数定义,允许它访问自己的内部状态。这使得递归能够按预期运行,并且您可以成功计算阶乘值。

以上是## 如何在 PHP 中实现递归匿名函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn