Hoe worden variabelen doorgegeven in PHP?
sobes.tech AI
Antwoord van AI
Variabelen in PHP worden standaard per waarde doorgegeven. Dit betekent dat bij het toewijzen van de waarde van de ene variabele aan een andere of het doorgeven van een variabele aan een functie, er een kopie van de waarde wordt gemaakt. Wijzigingen in deze kopie beïnvloeden de oorspronkelijke variabele niet.
Variabelen kunnen echter ook per referentie worden doorgegeven. In dat geval wordt in plaats van een kopie van de waarde, een pointer naar hetzelfde geheugengebied als de oorspronkelijke variabele doorgegeven. Wijzigingen die via de referentie worden aangebracht, beïnvloeden direct de oorspronkelijke variabele.
Doorgeven per referentie wordt gebruikt:
-
Toewijzing per referentie: Gebruik van de toewijzingsoperator met het ampersand (
=&).// Toewijzing per referentie $a = 10; $b =& $a; $b = 20; // Wijziging van $b wijzigt ook $a // $a is nu 20 -
Doorgeven van een parameter per referentie aan een functie: Toevoegen van een ampersand (
&) vóór de naam van de parameter in de functiedefinitie.<?php // Functie die een argument per referentie ontvangt function modifyValue(&$value) { $value *= 2; } $number = 5; modifyValue($number); // $number is nu 10 ?> -
Teruggeven van een waarde per referentie uit een functie: Gebruik van het ampersand (
&) vóór de functienaam in de definitie.<?php // Functie die een waarde per referentie retourneert function &getReference() { static $value = 0; $value++; return $value; } $a = &getReference(); $a = 100; // Wijziging van $a wijzigt ook de statische variabele binnen de functie $b = &getReference(); // $b verwijst nu naar dezelfde statische variabele (gelijk aan 101) ?>
Het is belangrijk op te merken dat sommige datatypes, zoals objecten, altijd per referentie worden doorgegeven (meer precies, er wordt een referentie naar het object doorgegeven). Bij het toewijzen van een object aan een andere, verwijzen beide variabelen naar dezelfde instantie van het object.
| Overdrachtsmethode | Hoe het werkt | Gebruik |
|---|---|---|
| Per waarde | Er wordt een kopie van de waarde gemaakt | Standaard gedrag, veilig voor de originele variabele |
| Per referentie | Er wordt een pointer naar het geheugen doorgegeven | Wijzigingen beïnvloeden direct de originele variabele |