Anders Genomgång 08 - 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 is_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('dallas') . '<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>';
// En funktion måste inte ha paramentrar
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(is_even($i) == true){
echo $i . ' ';
}
$i++;
}
echo '<br>';
include('foot.php');