首页  >  文章  >  后端开发  >  ## PHP 函数可以同时是递归函数和匿名函数吗?

## PHP 函数可以同时是递归函数和匿名函数吗?

Susan Sarandon
Susan Sarandon原创
2024-10-26 02:08:28322浏览

## Can PHP Functions Be Both Recursive and Anonymous?

在 PHP 中实现匿名递归函数

开始在 PHP 中编写递归函数的任务时,人们可能会渴望用匿名来掩盖它们。然而,当尝试将函数名称作为参数传递给自身时,就会出现一个陷阱,如下面的代码所示。

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

这种努力将被证明是徒劳的,给您留下一个挥之不去的问题:PHP 可以吗?函数既可以递归又可以匿名?

答案在于理解变量引用的机制。要建立递归连接,函数必须保存对其自身的引用。这可以通过使用“&”运算符将函数作为引用传递来实现。以下是此修改如何解锁匿名递归的示例:

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

通过此调整,PHP 函数超越了匿名的界限,无缝地运用了其递归功能。

以上是## PHP 函数可以同时是递归函数和匿名函数吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

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