3 Functions
In deze les leren we wat functions zijn waarom je ze gebruikt en hoe je ze maakt.
Een functie is een stukje code. De code ontvangt input doet er wat mee en de function maakt dan output.
Geldautomaat
In het dagelijks leven zijn er nog veel meer dingen die je met een function kan vergelijken. Neem bijvoorbeeld een geldautomaat.
Je stopt er wat in (pasje, pincode) en de function gaat van alles doen zoals je saldo en pincode controleren. Als alle controles goed gaan krijg je als output geld.
Wiskunde
In de wiskunde heb je ook functies en doen hetzelfde:
f(x) = x * x + 3
Deze functie krijgt als input een waarde x en zet deze om in output. Als je in deze functie 2 stopt dan krijg je er 7 uit (2 * 2 + 3).
Voorbeeld
Stel we willen deze laatste wiskunde functie in PHP-code omzetten, dan ziet dat er zo uit.
function myFunction($x) {
$output = $x * $x + 3;
return($output);
}
Regel 1, begin je de functie. Dat doe je altijd met het woord function, gevolgd door de functienaam die je zelf mag verzinnen. Dan volgt een { om aan te geven dat alle code tussen { en } bij de function hoort. De function loopt dus door tot en met regel 4.
De function krijgt de waarde $x als input. In het volgende voorbeeld laat ik zien hoe je deze waarde aan de functie meegeeft.
Regel 2, we zetten het resultaat van de berekening in de variabele $output.
Regel 3, hier maken we de output. In het volgende voorbeeld laat ik zien hoe je die output kunt krijgen.
Regel 4, Dit is het einde van de function.
Hoe roepen we deze function aan en hoe ontvangen we de output?
$in=4;
$uit=myFunction($in);
echo $uit;
$uit=myFunction(6);
echo $uit;
echo myFunction(9);
Je ziet hier drie voorbeelden van hoe je de function kan aanroepen. In ehthet eerste voorbeeld geven we de variabele $in de waarde 4, en we geven deze waarde mee als input van de function. Het resultaat komt in $uit. En op regel 3 drukken we de waarde van $uit dan af.
Op regel 5 geven we gelijk de waarde 6 als input mee.
Op regel 7 geven we gelijk de waarde 9 mee en drukken de output gelijk af zonder deze eerst op te slaan in een variabele.
In het
Watvolgende isfilmpje laat een function?
dialectische Watbekende isprogrammeur een functie enzien hoe maak je een functie? Waarom zou je een functie willenkan gebruiken?maken Devoor antwoordenhet opomrekenen dezevan vragenliters wordennaar gallons. Gallons is in dezeAmerika filmde gegeven.maat voor volume. Je koop daar dus bijvoorbeeld geen liter Cola maar een halve gallon.
Nog een voorbeeld van een function
In deze les wordt een iets complexere functie gemaakt. In deze functie worden de even getallen uit een array gefilterd.
Parameters
Dat wat je meegeeft aan een function heten parameters. In de vorige voorbeelden (filmpjes) zagen we dat we telkens precies één parameter meegaven. In het eerste voorbeeld was dat een getal en in het tweede voorbeeld was dat een array.
Je kunt ook minder of meer parameter meegeven, bijvoorbeeld nul:
function welkom() {
$tekst = 'Welkom op mijn website';
return $tekst;
}
En je kunt ook meer parameters meegeven, bijvoorbeeld drie:
function welkom2($tekst, $naam, $hoofdletters = FALSE ) {
//bepaal tekst
if ($tekst == 1) {
$uitvoer = 'Welkom '. $naam;
}
elseif ($tekst == 2) {
$uitvoer = 'Tot ziens, ',$naam;
}
//bepaal hoofdletters
if ($hoofdletters == TRUE) {
$uitvoer = strtoupper($uitvoer);
}
//geef resultaat
return $uitvoer;
}
De derde parameter is wat vreemd want de waarde wordt al bepaald in de functie, althans zo lijkt het. Dit is een zogenaamde optionele parameter. Je hoeft hem niet mee te geven en als je hem niet meegeeft dan is die 'by default' false.
Dus
welkom2(2, 'Mark', False )
is hetzelfde als
welkom2(2, 'Mark')
Apart bestand
Als je veel functies hebt dan kun je die in een apart bestand zetten dat houd de boel overzichtelijk en maakt samenwerking ook makkelijker, omdat iedereen aan zijn eigen set functions kan werken.
Stel je zet de functie uit het laatste voorbeeld in een apart bestand met de naam functie.php, dan zou de volgende code gewoon werken.
<?php
include_once('functie.php');
echo welkom2(1,'Ayoub',true);
?>
Opdracht 1
Maak een php file, functions.php met de functie welkom2 uit één van de voorbeelden van hierboven. Maak een file opdracht1.php en include de functions.php file.
$myArray=[''Nouaman','Aart','Samil','Rainee','Diego','Omer','Wessel','Jari','Max','Brian','Kikiya'];
Gebruik het bovenstaande array en roep voor elk van de namen de welkom2 functie twee maal aan, één keer om de welkom-boodschap af te drukken en één keer om de Tot-ziens-boodschap af te drukken.
Gebruik een loop en roep vanuit de loop de functie op de juiste manier aan.
Dus de output ziet er zo uit:
Welkom Nouaman
Tot ziens Nouaman
Welkom Aart
Tot ziens Aart
Welkom Samil
Tot ziens Samil
....
Welkom Kikiya
Tot ziens Kikiya
Opdracht 2a
Maak een functie die iedereen met een onvoldoende uitprint. Geef het assiociative array mee als parameter van de functie. Noem de functie resultaten()
$cijferPHP=['Ayoub' => 6, 'Roberto' => 7, 'Seman' => 4, 'Osmani' => 2,
'Klaas' => 3, 'Sid' => 8, 'Kendal' => 3, 'Ayas' => 9,
'Kianne' => 8, 'Droppie' => 7, 'Ken' => 6];
Opdracht 2b
Pas de functie uit opdracht 2a aan, zodat deze een assiociative array als parameter krijgt en ook een assiociative array terug geeft waarin alle studenten met een voldoende staan. Het resultaat is dus het volgende array:
$cijferPHP=['Ayoub' => 6,'Roberto' => 7, 'Sid' => 8, ,
'Ayas' => 9, 'Kianne' => 8, 'Droppie' => 7, 'Ken' => 6];
Opdracht 2c
Pas de functie uit opdracht 2b aan, zodat deze een assiociative array terug geeft waarin alle studenten met een voldoende of met een onvoldoende staan. Doe dat op de volgende manier:
resultaten($cijferPHP, true); // geef assiociative array met voldoende terug (zoals bij 2a)
resultaten($cijferPHP, false); // geef assiociative array met onvoldoendes terug
--