Functies en hun argumenten

Wanneer je in PHP een functie aanroept waaraan argumenten meegegeven kunnen worden dan is het van belang even stil te staan bij het volgende. Hoe worden die argumenten naar de functie gestuurd? Dat kan op twee manieren: by value en by reference.

By value

Voor eenvoudige variabelen zoals strings, integers en floats wordt automatisch alleen de waarde van de variabele verstuurd. Je kunt dus binnen de functie die waarde gebruiken om mee te rekenen. Wanneer je aan het einde van de functie het argument tig keer hebt veranderd, dan blijft de variabele die je meegaf als argument gewoon zichzelf.

By reference

Dit is heel anders als je een variabele by reference meestuurt. Voor objecten gaat het impliciet altijd op deze manier. In feite stuur je dan een verwijzing naar de variabele mee en niet de waarde ervan. Wanneer je zo’n variabele verwerkt in een functie wordt de meegestuurde variabele ook verandert en dat kan leiden tot vreemde situaties.

Klonen

Om te voorkomen dat een object dat meegestuurd wordt by reference aangepast wordt kun je de variabele klonen met het keywoord clone.

We hebben een eenvoudig voorbeeld verwerkt in de engelse versie van deze blog.


Mijn Twitter profiel Mijn Facebook profiel
Pim Hooghiemstra Webdeveloper and founder of PLint-sites. Loves to build complex webapplications using Vue and Laravel! All posts
Alle berichten tonen van Pim Hooghiemstra

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *