This is an old revision of the document!
Genomgång 8 - Funktioner
<?php /* * En funktion kan ha flera parametrar och kan * returnera ett värde. * * $tal1 och $tal2 är inte samma variabel som * i huvudprogrammet fast de heter likadant. * Blir en kopia av variablerna i huvudprogrammet. */ function summa($tal1, $tal2){ $summa = $tal1 + $tal2; $tal1 = 1000; // $tal ändras bara i funktionen. $test = 'teststräng'; // $test finns bara i funktionen echo $test . '<br>'; return $summa; // Skickar tillbaka svaret. } /* * En funktion kan vara utan parametrar och * behöver inte returnera något. Denna funktion * skriver bara ut en rad med stjärnor. */ function stars(){ echo '************************<br>'; } /* * Denna funktion skriver ut lika många stjärnor * som värdet på parametern $n. */ function stars2($n){ $i = 0; while($i < $n){ echo '*'; $i++; } // Ny rad skrivs ut när alla stjärnor // är utskrivna. echo '<br>'; } /* * Funktionen returnerar true om talet är * jämnt och false om det är udda. */ function even($tal){ if ($tal%2 == 0){ return true; } else { return false; } } /* * Har man många funktioner kan det vara * bra att lägga dessa i en separat fil och * göra dem tillgängliga med include. */ include('functions.php'); include('head.php'); // php har en massa färdiga funktioner, bl.a. för strängar. // Värdet som returneras kan skrivas ut eller // sparas i en variabel. echo strrev('.dlrow olleH') . '<br>'; $text='dallas'; $text2=strrev($text); echo $text2 . '<br>'; $tal1 = 5; $tal2 = 7; // 12 5 skrivs ut, d.v.s. $tal1 ändras inte fast det // förändras i funktionen. $tal1 är olika variabler // i huvudprogrammet och i funktionen fast de har samma namn. echo summa($tal1,$tal2) . ' ' . $tal1 . '<br>'; // Blir felmeddelande. $test finns bara i funktionen. echo $test . '<br>'; $x = 4; $y = 6; // Variablerna behöver inte ha samma namn som // i funktionen. 10 skrivs ut. echo summa($x, $y) . '<br>'; // Går att skicka värden direkt. 18 skrivs ut. $sum = summa(8,10); echo $sum . '<br>'; stars(); // Funktioner är bra om man vill göra samma sak // på flera ställen i koden. stars2(5); stars2(10); stars2(20); // Alla jämna tal mellan 0 och 20 skrivs ut. $i = 0; while($i <= 20){ if(even($i)){ echo $i . ' '; } $i++; } echo '<br>'; include('foot.php');