Tutorials

Zelf functies schrijven

Deze tutorial legt uit hoe je zelf functies kunt schrijven binnen PHP.

Pagina 1

Inleiding

Wat zijn functies?
Functies zijn kleine brokken programmacode die meerdere malen van elders uit het programma aangeroepen kunnen worden. Er wordt ook wel gezegd dat functies kleine programmaatjes in het programma zijn.

Naast de vele functies die PHP al standaard aan boord heeft is het ook mogelijk om zelf functies te schrijven.
Veel beginnende PHP-ers vermijden in eerste instantie het schrijven van functies waardoor al snel problemen ontstaan namelijk:

- veel if/else statements achter elkaar en in elkaar maken de code totaal onleesbaar.
- variabelen worden makkelijk overschreven waardoor het programma niet meer doet wat men verwacht.
- er ontstaan veel "herhalingen" in de code waardoor de code onnodig lang wordt en zodoende ook minder overzichtelijk, bovendien wordt het aanbrengen van wijzigingen later een lang proces van kopiëren en plakken.

Genoeg reden dus om vanaf het begin te gaan werken met functies. Deze tutorial legt uit hoe je deze functies kunt maken.
Pagina 2

Mijn eerste functie

Mijn eerste functie

Goed we halen de spanning er af. Hier volgt de schrijfwijze waarop functies worden gemaakt:

<?php

function functienaam( parameters ) {
// functie inhoud
}

?>

Bij het aanmaken van een nieuwe functie begint men altijd met het keyword 'function' gevolgd door een zelf te bedenken functienaam. Deze naam moet zo toepasselijk mogelijk zijn. Achter de functienaam komen haakjes met daartussen de parameters. Hierover later meer. Vervolgens komt de inhoud ook wel body genoemd tussen accolades. De inhoud is het stukje programmacode dat uitgevoerd gaat worden nadat de functie aangeroepen wordt.

Right, genoeg theorie. Praktijk! Hier een eerste werkende functie:

<?php

function helloworld() {
echo "Hello\n";
}

?>

Deze functie doet slechts één ding: Hello uitspugen. Als je hem tenminste aanroept want anders doet ie niets. Functies worden zo aangeroepen:

<?php

functienaam( parameters );

?>

Dan krijgen we zo een programma die bestaat uit een functie en een aanroep:

<?php

function helloworld() {
echo "Hello\n";
}

helloworld();

?>

En we kunnen onze nieuwe functie natuurlijk ook meerdere keren aanroepen:

<?php

function helloworld() {
echo "Hello\n";
}

// roep de functie 10 keer aan
for( $i = 0 ; $i < 10 ; $i++ ) {
helloworld();
}

?>
Pagina 3

Variabelen en functies

Variabelen en functies

Mocht u nog niet weten wat een variabele is: In een variabele kunt u een waarde opslaan zoals bijvoorbeeld een getal of een stuk tekst. In php worden namen van variabelen voorafgegaan door een $. Als een variabele binnen een functie een waarde toegewezen krijgt dan is deze alleen binnen dezelfde functie zichtbaar en daarbuiten niet.

<?php

// globale variabele
$tekst = "Deze variabele staat buiten de functie\n";

function showtext() {
// lokale variabele
$tekst = "Deze variabele staat binnen de functie\n";
echo $tekst;
}

showtext();

echo $tekst;

?>
In bovenstaand voorbeeld is de variabele $tekst in de functie een ander dan buiten de functie. Ze overschrijven elkaar niet. Je hebt in PHP op deze wijze dus geen last van dubbele namen van variabelen binnen en buiten functies. Mocht je nu toch een een een waarde van buiten de functie in de functie willen importeren (zonder deze als parameter mee te geven) dan kan dat met het keyword global.
<?php

// globale variabele
$tekst = "Deze variabele staat buiten de functie\n";

function showtext() {
global $tekst;

echo $tekst;
}

showtext();

?>
door het woord global voor $tekst te zetten wordt deze globale variabele meegenomen in de functie. Let daarbij op dat het echt dezelfde variabele is buiten de functie. Geef ik een nieuwe waarde aan $tekst binnen de functie dan is de waarde ook buiten de functie veranderd!
Pagina 4

Parameters aan functies meegeven

Parameters aan functies meegeven

Parameters die meegegeven worden aan een functie worden binnen de functie kopieën van variabelen van buiten de functie.

<?php
function mijnfunctie($kopie) {
echo $kopie."\n";

// probeer de waarde te veranderen
$kopie = 5;
}

$nr = 2;
mijnfunctie($nr);
echo $nr."\n";

?>
In bovenstaand voorbeeld blijft $nr de waarde 2 behouden. $nr wordt in de functie aanroep als parameter meegegeven. Binnen de functie heet hij dan $kopie. de namen verzin je zelf.

Je kan ook twee of meer parameters meegeven:
<?php

function optellen($a, $b) {
$som = $a + $b;
echo $som."\n";
}

$a = 3;
$b = 2;
optellen($a, $b);
?>

De laatste drie regels kun je ook inkorten:
<?php

function optellen($a, $b) {
$som = $a + $b;
echo $som."\n";
}

optellen(3, 2);
?>

Je kunt ook arrays of objecten meegeven als parameter, Dit valt echter buiten deze beginners tutorial. één ding wil nog wel even demonstreren:

De optionele parameter. Soms kan het handig zijn als je een parameter kunt weglaten als je hem niet nodig hebt, zodat je nog steeds dezelfde functie kunt gebruiken:
<?php

function optellen($a, $b, $c=0) {
$som = $a + $b + $c;
echo $som."\n";
}

optellen(3, 2);
optellen(3, 2, 4);
?>
Nu kun je ook drie getallen optellen maar ook nog steeds twee. Let er op dat de optionele parameters altijd achter de normale parameters staan.
Pagina 5

Een waarde teruggeven

Een waarde teruggeven

Zou het nou niet handig zijn om een functie ook een waarde terug te kunnen laten geven? Ja natuurlijk. We doen dat met het keyword return. Bij het keyword return wordt de functie direct verlaten. Ook wanneer deze halverwege de functie staat.

<?php

function optellen($a, $b, $c=0) {
$som = $a + $b + $c;
return $som;
}

$som = optellen(3, 2, 4);
echo $som;

?>
Je kunt bovenstaande nog twee keer inkorten naar:
<?php

function optellen($a, $b, $c=0) {
return $a + $b + $c;
}

echo optellen(3, 2, 4);

?>
Je kunt maar één variabele teruggeven. Meer dan één is niet mogelijk behalve met een array. Zoals eerder gezegd vallen arrays buiten deze handleiding en ga ik hier dus ook niet verder op in.
Wees zo goed om een berichtje achter te laten als je iets kwijt wil over deze tutorial. Veel PHP plezier!

Reacties

0
Nog geen reacties.