Differences
This shows you the differences between two versions of the page.
dvprog_11 [2019-09-09 09:24] Daniel Viström |
dvprog_11 [2022-07-18 13:20] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Genomgång 8 - Funktioner ====== | ||
- | <code php> | ||
- | |||
- | <?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, | ||
- | $summa = $tal1 + $tal2; | ||
- | $tal1 = 1000; // $tal ändras bara i funktionen. | ||
- | $test = ' | ||
- | echo $test . '< | ||
- | return $summa; | ||
- | } | ||
- | |||
- | /* | ||
- | * 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 ' | ||
- | } | ||
- | |||
- | /* | ||
- | * 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 '< | ||
- | } | ||
- | |||
- | /* | ||
- | * 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 ' | ||
- | |||
- | include ' | ||
- | |||
- | // 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(' | ||
- | $text=' | ||
- | $text2=strrev($text); | ||
- | echo $text2 . '< | ||
- | |||
- | $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, | ||
- | // Blir felmeddelande. $test finns bara i funktionen. | ||
- | echo $test . '< | ||
- | |||
- | $x = 4; | ||
- | $y = 6; | ||
- | // Variablerna behöver inte ha samma namn som | ||
- | // i funktionen. 10 skrivs ut. | ||
- | echo summa($x, $y) . '< | ||
- | |||
- | // Går att skicka värden direkt. 18 skrivs ut. | ||
- | $sum = summa(8, | ||
- | echo $sum . '< | ||
- | 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 '< | ||
- | |||
- | include ' | ||
- | |||
- | </ |