3.1: Functies
Een functie is een verzameling opdrachten die een bepaalde taak uitvoeren. Doorgaans is dit een taak die je vaker uit wilt voeren. In plaats van het steeds opnieuw schrijven van dezelfde code kun je deze verzameling opdrachten een naam geven. Zo'n constructie noemen we een functie. In de code kun je de functie aanroepen door de naam van de functie te noemen. Vervolgens wordt de code in die functie dan uitgevoerd.
Er zijn meer dan 1000 ingebouwde functies beschikbaar in php. Die kun je gewoon gebruiken door de functie aan te roepen. Zo is er bijvoorbeeld een functie om mail te versturen beschikbaar. Die ziet er zo uit:
// verstuur emailmail("e-mailadres","onderwerp","bericht");
// bijvoorbeeld
mail("mr.informatica@osgdl.nl","Vraag over functies","Mag ik een stukje code sturen waarop ik vastloop?");
Daarnaast bestaat ook de mogelijk om je eigen functies te schrijven. Zo kun je een aantal opdrachten steeds opnieuw laten uitvoeren door de functie aan te roepen. Een functie heeft het kenmerk dat er ALTIJD ronde haakjes achter de naam van de functie staan. Soms staat er geen informatie tussen de haakjes en soms wel. Dat laatste noemen we dan een parameter. Kijk maar eens naar onderstaand voorbeeld:
function mijnBericht()
{
echo 'Hallo wereld';
echo 'Dit is de eerste keer dat ik een tekst op het scherm produceer via een functie.';
}
mijnBericht();
?>
Telkens als je in je code mijnBericht(); aanroept dan wordt de functie opgezocht en de code binnen de accolades uitgevoerd. In het voorbeeld hierboven staan slechts twee regels in de functie. Je kunt je echter wel voorstellen dat je daar een groter blok aan code plaatst. Zo kun je bijvoorbeeld een functie maken die steeds bepaalt of een speler tegen een muur loopt of je bepaalt of er al een winnaar is in je spel en wie dat dan is. Je zou bijvoorbeeld ook een reset-functie kunnen maken die ervoor zorgt dat een spel weer gereset wordt naar de begintoestand.
Het is ook mogelijk om een functie te maken met één of meerdere parameters. Een parameter is een variabele die je tussen de ronde haakjes van de functienaam zet. Zijn er meedere parameters dan worden ze van elkaar gescheiden door een komma (,). als je een functie met parameters maakt dan is het noodzakelijk om de namen van die variabelen ook te gebruiken in de code die de functie uitvoert.
De vraag is nu hoe je data meegeeft aan die variabelen die dienst doen als parameters in een functie. Dat kan door ze mee te geven als waarden als je de functie aanroept. Hieronder zien je daarvan een voorbeeld:
Het resultaat zou er als volgt uitzien:
Bovenstaande voorbeeld is natuurlijk mooi maar niet echt functioneel. Praktischer zou het zijn als een functie de waarde voor de parameters zou krijgen vanuit de gebruiker. Hoe dat werkt staat in onderstaande afbeelding uitgelegd:
Uitleg van bovenstaande code
-
HTML-formulier: Het formulier bevat invoervelden voor het gewicht (in kilogram) en de lengte (in meters). Deze gegevens worden verzonden met de
POST
-methode. - Waarden ophalen: De ingevoerde waarden voor gewicht en lengte worden opgehaald via de
$_POST
-variabele. - Functie-aanroep: De functie
berekenBMI
wordt aangeroepen met de opgegeven gewicht en lengte als parameters, en het resultaat wordt weergegeven. - De functie:
berekenBMI
berekent de BMI met de formule:gewicht / (lengte * lengte)
waarbij de lengte in meters wordt gebruikt. - Het resultaat: het resultaat wordt afgerond op twee decimalen. De waarde van de berekende BMI wordt teruggegeven (RETURN) op de plek waar de functie aangeroepen is.