<?php // EXEMPEL 1 /* * Rekursiv funktion som beräknar värdet av den rekursiva * talföljden där a(1) = 5 och a(n+1)=a(n)+4. */ function a($n){ if ($n == 1){ // Brytvillkor return 5; // a(1) = 5 } else { return a($n-1) + 4; // Funktionen anropar sig själv med ett nytt värde. // Fortgår tills brytvillkoret nås. // Observera att flera kopior av funktionen är igång samtidigt // (lika många som antal gjorda (ej avslutade) anrop). // Varje kopia har sina egna unika värden på parametrar och lokala variabler. } } include('head.php'); echo 'a1 = ' . a(1) . '<br>'; echo 'a2 = ' . a(2) . '<br>'; echo 'a3 = ' . a(3) . '<br>'; echo 'a4 = ' . a(4) . '<br>'; echo 'a5 = ' . a(5) . '<br>'; include('foot.php'); /* Programmet skriver ut: a1 = 5 a2 = 9 a3 = 13 a4 = 17 a5 = 21 */ ?>
<?php // EXEMPEL 2 /* * Rekursiv funktion som skriver ut ett namn. * Rekursion går att använda istället för while om man vill. */ function namnutskrift($namn, $antal){ echo $namn . $antal . '<br>'; if ($antal == 1){ // Brytvillkor. } else { namnutskrift($namn, $antal-1); // Funktionen anropar sig själv med ett nytt värde. // Fortgår tills brytvillkoret nås. } echo 'Hej' . $antal . '<br>'; // Skrivs ut när den "inre"-funktionen är färdigkörd. } include('head.php'); namnutskrift('Anders',5); include('foot.php'); /* Programmet skriver ut: Anders5 Anders4 Anders3 Anders2 Anders1 Hej1 Hej2 Hej3 Hej4 Hej5 */ ?>