Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
dvprog_11 [2020-02-06 10:30] Daniel Viström |
dvprog_11 [2020-02-06 13:43] Daniel Viström |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Genomgång - Funktioner ====== | ====== Genomgång - Funktioner ====== | ||
+ | |||
+ | En funktion är en del av ett program som anropas av den övriga koden för att utföra en viss uppgift. Funktionen kan anropas flera gånger från olika delar av programmet. När en funktion anropas körs koden i funktionen. Därefter " | ||
==== Exempel 1 ==== | ==== Exempel 1 ==== | ||
Line 34: | Line 36: | ||
// php har en massa färdiga funktioner, bl.a. för strängar. | // 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. | // Värdet som returneras kan skrivas ut eller sparas i en variabel. | ||
- | echo strrev(' | + | echo strrev(' |
$text = ' | $text = ' | ||
- | $text2 = strrev($text); | + | $text2 = strrev($text); |
echo $text2 . '< | echo $text2 . '< | ||
Line 53: | Line 55: | ||
<code php> | <code php> | ||
<?php | <?php | ||
- | |||
/* | /* | ||
* En funktion kan ha flera parametrar och kan | * En funktion kan ha flera parametrar och kan | ||
* returnera ett värde. | * returnera ett värde. | ||
* | * | ||
- | * $tal1 och $tal2 är inte samma variabel | + | |
- | * i huvudprogrammet fast de heter likadant. | + | * i huvudprogrammet fast de heter likadant. |
- | | + | |
*/ | */ | ||
function summa($tal1, | function summa($tal1, | ||
- | | + | |
- | $tal1 = 1000; | + | $tal1 = 1000; // $tal1 ändras |
- | $test = ' | + | return $summa; |
- | 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 '< | + | |
} | } | ||
Line 99: | Line 74: | ||
*/ | */ | ||
function even($tal){ | function even($tal){ | ||
- | | + | // Innehållet i funktionen kan förkortas till endast raden: return $tal%2 == 0; |
- | return true; | + | |
- | } else { | + | return true; |
- | return false; | + | } else { |
- | } | + | return false; |
+ | } | ||
} | } | ||
- | /* | + | // Huvudprogram |
- | * 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 ' | 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; | $tal1 = 5; | ||
$tal2 = 7; | $tal2 = 7; | ||
- | // 12 5 skrivs ut, d.v.s. $tal1 ändras inte fast det | + | echo summa($tal1, |
- | // 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; | $x = 4; | ||
$y = 6; | $y = 6; | ||
- | // Variablerna behöver inte ha samma namn som | + | // Variablerna behöver inte ha samma namn som i funktionen. |
- | // i funktionen. 10 skrivs ut. | + | $sum = summa($x, $y) . '< |
- | echo summa($x, $y) . '< | + | echo $sum . '< |
// Går att skicka värden direkt. 18 skrivs ut. | // Går att skicka värden direkt. 18 skrivs ut. | ||
- | $sum = summa(8, | + | echo summa(8, |
- | echo $sum . '< | + | |
- | stars(); | + | echo $summa . '< |
- | // Funktioner är bra om man vill göra samma sak | + | // Blir felmeddelande. $summa finns bara i funktionen. |
- | // på flera ställen | + | echo $tal1 . '< |
- | stars2(5); | + | // Värdet har inte förändrats trots att funktionen har körts. |
- | stars2(10); | + | // $tal1 är olika variabler i huvudprogrammet och i |
- | stars2(20); | + | // funktionen fast de har samma namn. |
// Alla jämna tal mellan 0 och 20 skrivs ut. | // Alla jämna tal mellan 0 och 20 skrivs ut. | ||
$i = 0; | $i = 0; | ||
while($i <= 20){ | while($i <= 20){ | ||
- | | + | |
- | echo $i . ' '; | + | echo $i . ' '; |
- | } | + | } |
- | $i++; | + | $i++; |
} | } | ||
echo '< | echo '< | ||
include ' | include ' | ||
- | |||
</ | </ |