I have always found it slightly strange that the examples used to illustrate recursion are very often infinite sequences. Since you are going to execute a repeated calculation a known number of times (otherwise you can go forever) you can use a for loop much more readably e.g.
[code]
function factorial($number) {
$factorial = $number--;
for ($i = $number; $i > 0; $i--) {
$factorial = $i * $factorial;
}
return $factorial;
}
[/code]
In my opinion recursion only makes sense for nested structures where you don't know the depth in advance then they can be quite elegant. Despite being confusing to debug they are often great fun to play with. There are some interesting points here http://en.wikipedia.org/wiki/Recursion_(computer_science)#Recursion_versus_iteration