Variabele variabelen - deel 2

Er is ook een manier om in 1 variabele 2 waarden op te slaan. Dit lijkt op het sleutel-waarde principe van een array: bij een bepaalde index hoort een bepaalde waarde. Alleen bij dit soort variabelen heb je twee waardes die echt bij elkaar horen, je kunt daar verder niets mee doen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $var
= 'sleutel';
    // de "sleutel" waarde wordt gewoon gedefinieerd als
    // een gewone variabele

    $$var = 'waarde';
    // de waarde die bij sleutel hoort, zit in $$var.
    // (de waarde 'sleutel' zit nog in $var)

    echo $var . ' hoort bij ' . $$var;
?>

Dit geeft als uitkomst:

sleutel hoort bij waarde

Wat gebeurt er? Eerst wordt $var gedefinieerd als elke andere variabele. Vervolgens wordt $$var gedefinieerd de waarde die bij $var hoort. Zoals je misschien al gezien hebt, is het belangrijk dat de twee variabelen exact dezelfde naam hebben.

Als je vervolgens dit doet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $var
= 'sleutel';
    // de "sleutel" waarde wordt gewoon gedefinieerd als
    // een gewone variabele

    $$var = 'waarde';
    // de waarde die bij sleutel hoort, zit in $$var.
    // (de waarde 'sleutel' zit nog in $var)

    echo $var . ' hoort bij ' . $sleutel;
?>

Echot php precies hetzelfde, namelijk:

sleutel hoort bij waarde

Hoe kan dit? Hier gebeurt substitutie, een ander woord voor vervanging. Een variabele is niets anders dan een vervanger voor een variabele. Php vervangt gewoon alle $var door 'sleutel'. Hierdoor komt er te staan $sleutel in plaats van $$var. Daarmee is ook te het eerste voorbeeld te begrijpen, bij het definiëren van $$var vervangt php eerst $$var voor $sleutel, voor hij er 'waarde' aan toewijst.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Variabele variabelen
  3. Een voorbeeld
  4. Variabele variabelen - deel 2
  5. Variabele functies
  6. Nawoord

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.