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

Susan Sarandon
发布: 2024-10-26 02:08:28
原创
325 人浏览过

## 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!