Skip to main content

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.

image-1654442163332.png

 

 

 

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 X 2 +3).

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 myFunction(9);

Je ziet hier drie voorbeelden van hoe je de function kan aanroepen. In eht 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.

 

Wat is een function?

Wat is een functie en hoe maak je een functie? Waarom zou je een functie willen gebruiken? De antwoorden op deze vragen worden in deze film gegeven.

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

--