Les 3: Functies

Inleiding in functies

Een functie is een manier om een blok code te verpakken en een naam te geven, zodat je het blok later in slechts één regel code kunt gebruiken. Gebruik je heel vaak dezelfde code (bijvoorbeeld om een e-mailadres te controleren, of om verbinding te leggen met een database), dan kan het handig zijn om de code te verpakken in een functie zodat je deze makkelijker kunt hergebruiken. Ook wanneer je een bepaald stuk code maar een keer gebruikt kan het nuttig zijn om dit stuk code in een functie op te nemen.

Als je meerdere functies regelmatig gebruikt in verschillende projecten, kan je deze functies concentreren in zogenaamde “functiebibliotheken” en deze functiebibliotheken insluiten in je projecten.

PHP functies

Standaard beschikt PHP, net als veel andere programmeertalen over een groot aantal ingebakken functies. Voordat je dus zelf aan de slag gaat met het maken van een functie is het verstandig om eerst te controleren of PHP al niet een functie voor je heeft.

Hieronder staan voorbeelden van het gebruik van enkele PHP functies. Voor een volledige lijst van PHP functies kijk je op http://www.php.net/manual/en/funcref.php .

 Zelf een functie maken

Zoals eerder gezegd is het mogelijk om zelf functies te maken in PHP. De basis syntax van een functie ziet er als volgt uit:

Zoals je hierboven ziet moet je een functie eerst “declareren” (=bouwen) voordat je hem later kunt gebruiken (=aanroepen). Op zich vrij logisch. Met het woord function  geef je aan dat je een functie wilt bouwen.

Naam van je eigengebouwde functie

De naam van de functie is in principe vrij te kiezen, maar moet voldoen aan de volgende voorwaarden:

  1. Er mogen geen spaties in de functienaam zitten (wel hoofdletters, underscores)
  2. De functienaam mag niet hetzelfde zijn als een van php’s ingebouwde functies. date() mag je bijvoorbeeld niet gebruiken, en count() is ook al bezet.

Vervolgens komen direct na de functienaam haakjes en accollades.

Parameters waar je in je functie iets mee wilt doen

Tussen de haakjes zet je eventuele parameters (officieel argumenten genoemd) neer die de functie mag accepteren. Klinkt ingewikkeld he? Maar het valt mee. De php functies strlen() en count() accepteren elk een argument. Je kunt echter zoveel argumenten aan je functie meegeven als je maar wilt. Kijk hieronder voor een voorbeeld van een functie waarbij een voornaam en een achternaam aan elkaar worden gekoppeld en teruggegeven:

Je ziet in bovenstaande, dat het eerste argument dat bij het aanroepen  van de functie wordt meegegeven automatisch beschikbaar is als $voornaam binnen de functie. Het tweede argument wat je meegeeft zal beschikbaar zijn als $achternaam binnen de functie.

Nadat je een functie hebt gedeclareerd, kan je hem daarna, in het huidige document, zo vaak gebruiken als je maar wilt.

De scope van variabelen

Variabelen die je buiten een functie declareert, kan je binnen de functie niet aanroepen. Bekijk het volgende voorbeeld:

Als je een variabele binnen een functie wilt kunnen gebruiken, zal je de functie zo moeten bouwen dat deze variabelen accepteert. We gaan bovenstaande functie aanpassen zodat deze iets kan doen met een variabele die er buiten is gedeclareerd:

 $_POST en $_GET zijn wel beschikbaar binnen een functie

Gegevens die je verstuurd via een formulier worden opgeslagen in $_POST of $_GET (afhankelijk van de method die je in het formulier hebt aangegeven). $_POST en $_GET kunnen binnen de functie wel worden aangesproken, ongeacht of ze worden meegegeven of niet. Dat komt omdat $_POST en $_GET “globale variabelen” zijn (global variables). Deze zijn overal binnen je document beschikbaar, dus ook binnen functies.

Een functiebibliotheek aanmaken en gebruiken

Aan het begin van deze les kon je lezen dat het handig kan zijn om veelgebruikte functies met elkaar in een functiebibliotheek te zetten. Het voordeel hiervan is dat je, mocht je ooit aanpassingen willen verichten aan een functie, je dit maar op 1 plek hoeft te doen. Een functiebibliotheek is in beginsel niets anders dan een PHP bestand waarin 1 of meer functies zijn gedeclareerd. Stel dat je een bestand genaamd “functions.php” aanmaakt met daarin de volgende functies:

Stel nu dat je de functies uit de functiebibliotheek nodig hebt in een bepaald bestand, dan kan je deze functiebibliotheek als volgt koppelen:

 Voorbereidingen om succesvol te kunnen starten met les 4

Het is erg belangrijk dat je het nut van functies begrijpt. Lees de bovenstaande stof nog eens goed door en experimenteer om er achter te komen waarom iets misschien niet goed gaat.

Opdracht voor les 4

Om het behandelde van les 3 te kunnen oefenen krijg je van de docent een korte praktische opdracht. De uitwerking hier van stuur je uiterlijk een dag voor les 4 terug naar de docent.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.