Рекурсивные функции
Ситуация, при которой функция многократно вызывает сама себя, пока не будет выполнено некоторое условие, открывает замечательные возможности. При правильном использовании рекурсивные функции уменьшают объем программы и делают ее более выразительной. Рекурсивные функции особенно часто используются при выполнении повторяющихся действий — например, при поиске в файлах/массивах и построении графических изображений (например, фракталов). Классическим примером рекурсивных функций, встречающимся во многих курсах программирования, является суммирование чисел от 1 до N. Программа, приведенная в листинге 4.5, суммирует все целые числа от 1 до 10.
Листинг 4.5. Использование рекурсивной функции для суммирования последовательных целых чисел
function summation ($count) {
if ($count != 0) :
return $count + summation($count-1);
endif;
}
$sum = summation(10);
print "Summation = $sum";
В результате выполнения листинга 4.5 будет выведен следующий результат:
Summation = 55
Если функция вызывается достаточно часто,
рекурсия делает программу более
эффективной. Тем не менее, при
использовании рекурсии необходима
осторожность, поскольку ошибки могут
привести к зацикливанию программы.