<< Tilbage

PHP Funktioner

En funktion udfører en bestemt opgave når den bliver eksekveret (kaldet). Det kan være at skrive noget bestemt ud på skærmen, oprette en bruger i mit brugersystem, tjekke om den email jeg angiver er gyldig, og lignende. Gode funktioner kan man genbruge mange steder i koden, så man slipper for at gentage samme kode flere gange. Skal man have udført en stor opgave kan man med fordel splitte den op i mindre funktioner. Nok snak for nu...

Første eksempel

I det første eksempel laver vi en funktion der skriver en velkomst ud på skærmen.

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?php
function velkomst()
{
    echo 
"Hej bruger, velkommen til phpartikler.dk <br>";
    echo 
"God fornøjelse <br><br>";
}

velkomst(); //Kald funktionen
velkomst(); //Kald funktionen igen
?>
Resultat:
Hej bruger, velkommen til phpartikler.dk
God fornøjelse

Hej bruger, velkommen til phpartikler.dk
God fornøjelse

I linje 2 opretter vi en funktion med med navnet velkomst, ved først at skrive ordet function efterfulgt af navnet på vores funktion. Dernæst en tom (endnu) parentes. Mellem de to tuborgklammer { og } står indholdet af selve funktionen (den kode der bliver udført hver gang vi kører/kalder funktionen). I linje 8 og 9 kaldes velkomst og koden fra funktionen udføres.

Vi kan hermed konkludere at at en funktion oprettes på følgende måde:

function navn_på_funktionen()
{
    
//Funktionens indhold
}

Og at vi kan kalde funktionen ved at skrive:

navn_på_funktionen();

Funktioner med parametre/argumenter

Man kan også lave en funktion der tager imod parametre (eller argumenter, det er det samme). Når man kalder funktionen sender man nogle parametre med som funktionen så kan bruge. Illustreret med et eksempel:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?php
function velkommen($navn$alder)
{
    if (
$alder >= 18)
    {
        echo 
"Velkommen " $navn;
    }
    else
    {
        echo 
"Desværre, " $navn ", du er kun " $alder;
    }
}

velkommen("Jens Hansen"17); //Kald velkommen med Jens Hansen og 17 som de 2 parametre funktionen kræver
?>
Resultat:
Desværre, Jens Hansen, du er kun 17

I linje 2 angiver vi i parantesen, der før var tom, de parametre vi ønsker at benytte (kommasepareret). Dvs. når vi kalder funktionen velkommen, så kræver den 2 oplysninger, nemlig navn og alder. Inde i selve funktionen kan vi så frit bruge de variabler/værdier brugeren har sat som parametre når funktionen kaldes. I linje 14 kaldes funktionen med angivelse af de 2 parametre som funktionen kræver, iøvrigt også kommasepareret. Altså... vi kalder funktionen velkommen med Jens Hansen som det første parameter og 17 som det andet. Inde i funktionen velkommen bruger vi så de værdier.

Et lille eksempel mere:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?php
function adder($tal1$tal2)
{
    
$resultat $tal1 $tal2;
    echo 
$resultat;
}

adder(300500);
echo 
"<br>";
adder(564111);
?>
Resultat:
800
675

Funktioner med frivillige parametre

Parametrene har vi indtil videre været nødt til at angive for at undgå fejl. Men parametrene kan også antage standard værdier. Eksempel:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?php
function beregn_moms($pris$moms=25)
{
    
$resultat $pris * ($moms/100);
    echo 
$resultat "<br>";
}

beregn_moms(1000);
beregn_moms(100050);
?>
Resultat:
250
500

Det andet parameter ($moms) får altså standardværdien 25, dvs. hvis man kalder funktionen uden at angive parameter 2, så bruger den bare 25.

Funktioner der returnerer en værdi

Indtil nu har vores funktioner ikke returneret nogen værdi (givet noget resultat), de har blot udført noget kode. Her er et eksempel på hvordan en funktion også kan returnere en værdi (forklaring følger):

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<?php
function find_nationalitet($livret)
{
    if(
$livret == "pizza") {
        
$land "Italien";
    } elseif (
$livret == "svensk pølseret") {
        
$land "Sverige";
    } elseif (
$livret == "cheeseburger") {
        
$land "USA";
    } else {
        
$land "Ukendt";
    }

    return 
$land;
}

$ditland find_nationalitet("pizza");
echo 
"Din nationalitet er " $ditland;
?>
Resultat:
Din nationalitet er Italien

Kig på linje 17. Her tildeles variablen $ditland værdien af funktionskaldet med pizza som parameter. find_nationalitet skal altså på en eller anden give en værdi, som vi kan tildele $ditland. Dette gøres i linje 14 i funktionen. Forinden har funktionen undersøgt parametret ($livret) for at finde ud af hvad $land skal sættes til, og i linje 14 returneres denne værdi altså.

En stor del af php's indbyggede funktioner returnerer en værdi når man kalder dem. Her er et lille eksempel der illustrere dette:

Kode:
1.
2.
3.
4.
<?php
$l 
strlen("Dette er en test");
echo 
$l;
?>
Resultat:
16

strlen() er en funktion der er indbygget i PHP, som bruges til finde ud af hvor mange tegn der er i en streng. Vi har givet funktionen "dette er en test" som parameter og funktionen returnerer så antal tegn.

Globale/lokale variabler

Variabler du opretter inde i en funktion kan udelukkende bruges i den funktion. Ligeledes kan du ikke fra funktionen bruger variabler der er sat udenfor funktionen. Eksempel:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
<?php
$i 
100;

function 
test()
{
    
//Herinde har jeg ikke adgang til $i
}
?>

Eksemplet viser altså at vi ikke umiddelbart kan få værdien af $i inde i funktionen. Det kræver at man benytter kommandoen global på følgende måde:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?php
function test_igen()
{
    global 
$i;
    echo 
$i;
}

$i 500;
test_igen();
?>

I linje 8 sætter jeg variablen $i og i linje 9 kalder jeg funktionen. Fra funktionen vil jeg gerne skrive indholdet af $i ud på skærmen, og det kræver at jeg skriver global efterfulgt af variablens navn. Først når jeg har gjort det får jeg adgang til variablen (som ligger udenfor funktionen).

Leder du efter billige usb stik?, så kan du få et Billigt USB stik hos usb.dk

Spørgsmål/forslag/kommentarer rettes til webmaster@phpartikler.dk

Billige USB stik