Kapitel 14. Funktioner

Innehållsförteckning
Vad är en funktion?
När skall man använda funktioner?
Argument till funktioner
Returvärden
Mer läsning

Funktioner används för att dela upp programmet i mindre små delar. Det gör att programmeraren kan koncentrera sig på en del i taget och löper mindre risk att göra fel. Man använder även funktioner till kod som kan återfinnas på flera ställen för att minska duplikation av kod.

Vad är en funktion?

En funktion är ett antal instruktioner som fristående utför en sak. Denna snutt kan sedan köras om och om i samma program eller delas med andra program. Ett exempel:

Exempel 14-1. Funktioner


<?php
/*
 * print_html_header_start
 *
 * Skriver ut en html-header
 */
function print_html_header_start () {
   echo "<html><head></head><body>";
}

/*
 * print_html_header_stop
 *
 * Skriver ut slut-html-taggar
 */
function print_html_header_stop () {
   echo "</body></html>";
}


// Här börjar programmet
print_html_header_start();

// Andra utskrifter här.
print_html_header_stop();
?>

				
I exemplet ovan deklareras två funktioner som skriver ut en html-header och en html-footer. Dessa funktioner anropas längre ned i programmet.

När skall man använda funktioner?

Man skall använda funktioner så snart man kan. Själva programmet brukar ofta vara bara anrop till olika funktioner. Följande kan vara bra grundregler.

Använd funktioner till:

Försök att tänka ett program i funktioner.

Vi funderar på programmet password.php och försöker identifiera olika funktioner.

En funktion är att skriva ut html-formuläret. Det är ju en avgränsad uppgift. En annan solklar funktion är autentiseringen.

Argument till funktioner

En funktion kan ta noll eller flera argument. Ett argument är ett värde som man skickar till funktionen. Till exempel om man vill vill göra en funktion som summerar två tal så är det bra om den kan ta de två talen som argument. Se följande exempel:

Exempel 14-2. Argument till funktioner


<?php
function summa($tal1, $tal2) {
        return ($tal1 + $tal2);
}

echo summa(5,6);
?>

				
Observera att ordningen på argumenten spelar roll. I exemplet kommer tal1 att bli 5 och tal2 6. Variablerna $tal1 och $tal2 existerar bara inom funktionen och inte i resten av programmet. Vilken som får vilket värde bestäms av ordningen i funktionsanropet.

Returvärden

I funderingen ovan vore det ju bra om autentiseringen kunde returnera ett värde (ett boolskt värde till exempel). Det kan se ut så här:

Exempel 14-3. Retur från funktioner


<?php
function is_logged_in ($name, $pass) {
        if ($name == "kalle") && ($pass == "ankeborg")) {
                return true;
        } else {
                return false;
        }
}
?>

				
Denna funktion är ganska kompakt och gör sig fötjänt av en förklaring. Den tar två argument, $namn och $pass. Funktionen returnerar värdet av en boolsk operation.

Mer läsning

Aktuellt avsnitt i manualen. http://www.php.net/manual/en/functions.php