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



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 het 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 volgende filmpje laat een dialectische bekende programmeur zien hoe je een functie kan maken voor het omrekenen van liters naar gallons. Gallons is in Amerika de 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 phpfunction file,waarmee functions.php metje de functie welkom2 uit ééntemperatuur van degraden voorbeeldenin vanFahrenheit hierboven.kan Maakomrekenen.

een

Het fileomrekenen opdracht1.phpdoe enje includeals de functions.php file.volgt:

$myArray=[''Nouaman','Aart','Samil','Rainee','Diego','Omer','Wessel','Jari','Max','Brian','Kikiya'];farenheit = ($celcius * 9/5) + 32;

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 functiefunction 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 opaan de volgende manier:voorwaarden voldoet:

resultaten($cijferPHP,//




function true);naam
bedenk geefeen assiociativelogische arraynaam
function input
een getal, de temperatuur in graden celcius
function output
een getal, de temperatuur omgerekend in graden fahrenheit

Test jouw functie. Roep de function op met voldoendetenminste terug3 (zoalsverschillende bijinput 2a)waarden resultaten($cijferPHP,en false);druk //de geefresultaten assiociativeaf. arrayLaat deze testen in jouw code staan.

Op deze pagina kun je celcius in fahrenheit om laten rekenen. Gebruik deze site om te testen.

Inleveren

php203-jouw-naam.php met onvoldoendesdaarin terug

de

--function en tenminste drie testen waarin je laat zien dat de juisten waarden door de function laat berekenen.