Kann mir jemand rekursive Funktionen in PHP (ohne Verwendung von Fibonacci) in Laiensprache und anhand von Beispielen erklären? Ich schaue mir ein Beispiel an, aber Fibonacci geht mir völlig verloren!
Vielen Dank im Voraus ;-) Und wie oft verwenden Sie sie in der Webentwicklung?
一个示例是打印给定目录的任何子目录中的每个文件(如果这些目录中没有符号链接,这可能会以某种方式破坏该功能)。打印所有文件的伪代码如下所示:
想法是先打印所有子目录,然后打印当前目录的文件。这个想法适用于所有子目录,这就是为所有子目录递归调用此函数的原因。
如果你想尝试这个例子,你必须检查特殊目录
.
和..
,否则你会陷入调用printAllFiles(". ")
一直如此。此外,您必须检查要打印的内容以及当前的工作目录是什么(请参阅opendir()
、getcwd()
...)。外行术语:
递归函数是调用自身的函数
更深入一点:
如果函数不断调用自身,它如何知道何时停止?您设置一个条件,称为基本情况。基本情况告诉我们的递归调用何时停止,否则它将无限循环。
对我来说,一个很好的学习例子是阶乘一个>。从下面的评论来看,阶乘函数似乎有点太多了,我将其留在这里以防万一您需要它。