Рекурсія Рекурсією називається виклик функції самої себе. Такий виклик називається рекурсивним. Рекурсія буває пряма і непряма. Розглянемо приклад прямої рекурсії (див. лістинг 8.7). Лістинг 8.7. Пряма рекурсія <? function fact ($x) { if ($x==0) return 1; else return $x*fact($x-l); } echo fact (7); ?> Як ви вже встигли здогадатися, функція fact () обчислює факторіал x!. Функція fact () у своєму тілі викликає саму себе — це і є пряма рекурсія. Непряма рекурсія виникає, коли перша функція викликає другу, а друга — першу. Механізм рекурсії одночасно дуже корисний, але і дуже небезпечний. При створенні рекурсивних функцій потрібно бути особливо уважним, щоб уникнути зациклення. Наступна функція викличе зациклення (див. лістинг 8.8). Листинг8.8. Некорректноєіспользованіє рекурсії function fact($x) { if ($x==0) return 1; else return $x*fact($x);