Wat is een variabele ?

Een constante is een gegeven, een stukje informatie dat niet verandert. Een variabele kan daarentegen wel veranderen. Een variabele kan tijdelijk iets voorstellen maar kan net zo goed op een ander moment weer iets anders voorstellen. Die variabele heeft dan op verschillende momenten een verschillende inhoud, dat noemen we de waarde, dus je kunt zeggen dat een variabele 'een waarde heeft'.

Een voorbeeld: de temperatuur om tien uur 's ochtends is bijvoorbeeld 10 graden en tussen de middag 18 graden. De temperatuur is een variabele die 's ochtends de waarde 10 heeft en tussen de middag de waarde 18. Die waarden, in dit voorbeeld 10 en 18, noemen we de constanten. Je kunt namelijk niet zeggen dat de 10 een andere waarde aanneemt: 10 is altijd 10.

Variabelen in PHP

Een variabele heeft een naam en een waarde. De naam kun je beschouwen als een labeltje op een vakje ergens in het computergeheugen. Het label wijst naar een vakje en in het vakje kun je iets bewaren, bijvoorbeeld een getal, een letter, een datum, een temperatuur etc... Variabelen kun je zo gebruiken om tijdelijk iets in op te slaan.


Het tijdelijke karakter van een variabele wordt duidelijk als je je voorstelt dat een variabele een koelkast is waar ruimte is voor precies 1 pak melk, yoghurt of jus. Je komt thuis met de boodschappen en zet een pak melk in de koelkast. Dat kun je opschrijven als $koelkast="melk". Later wil je een glas melk drinken dus je haalt de melk weer uit de koelkast, schenkt een glas melk in en zet de melk weer terug. Zoiets als $glas=$koelkast ofwel: wat in je glas zit wordt hetzelfde als in de koelkast staat. Bij dit voorbeeld moet je even aannemen dat zo'n pak nooit leegraakt.

Stel nu dat iemand anders een pak jus in de koelkast zet. Omdat er plaats is voor maar 1 pak moet de melk eruit. Dat schrijf je op als $koelkast="jus". De melk is nu verdwenen, als je die had willen bewaren had je 'm in een andere variabele moeten zetten. Nu is 'ie echt weg.

Jij weet van niks en gaat een glas melk halen, dus je doet $glas=$koelkast en tot je stomme verbazing blijkt dat $glas nu "jus" bevat in plaats van de "melk" die je verwacht had.

Het programma:

 $koelkast="melk";
 $glas=$koelkast;
 echo "Ik drink $glas<br>";
 $koelkast="jus";
 $glas=$koelkast;
 echo "Ik drink $glas<br>";
Het resultaat:
Ik drink melk
Ik drink jus


De naam van een PHP variabele begint altijd met een $ teken om aan te geven dat je het over een variabele hebt en minimaal 1 gewone letter. De rest van de naam mag bestaan uit letters, cijfers en underscores (_) maar geen andere tekens. Hoofdletters en kleine letters zijn beide toegestaan maar let op dat een hoofdletter in PHP iets anders is dan een kleine letter, zoals het volgende voorbeeld laat zien:

<?php
  $bigsmall="klein";
  $BigSmall="groot";

  echo "Dit is $bigsmall en dit is $BigSmall";
?>

Het resultaat:

Dit is klein en dit is groot

Nog een voorbeeld waarbij je een naam opslaat in een variabele. Je kunt dan een algemene brief maken en pas op het laatste moment de naam van de geadresseerde overal invullen.

<?php $briefnaam="mevrouw Jansen"; ?>

Gefeliciteerd <?php echo $briefnaam; ?>, u heeft een uniek lotnummer waarmee u grote prijzen kunt winnen. Dus <?php echo $briefnaam; ?>, gaat u vooral naar onze dealer alwaar u zich legitimeert met uw naam (dat is dus "<?php echo $briefnaam; ?>") en allerlei nutteloze onzin kunt kopen.

Gefeliciteerd mevrouw Jansen, u heeft een uniek lotnummer waarmee u grote prijzen kunt winnen. Dus mevrouw Jansen, gaat u vooral naar onze dealer alwaar u zich legitimeert met uw naam (dat is dus "mevrouw Jansen") en allerlei nutteloze onzin kunt kopen.

Zoals je impliciet in dit voorbeeld kunt zien mag je meermalen een stukje PHP-programma neerzetten. Variabelen die je op een 'algemene' manier een waarde geeft behouden die waarde binnen dezelfde PHP-pagina.

Assignment: een waarde toekennen aan een variabele

Een waarde aan een variabele toekennen doe je zo:

$sms_tegoed = 50;

De waarde van een variabele kun je bekijken door de variabele af te drukken. Dat doe je met echo of print. Als voorbeeld hier met echo:

echo "Het SMS tegoed is: $sms_tegoed";

Het werkt bijna net zoals in algebra. Kijk eens naar dit voorbeeldje uit de natuurkunde-les waarbij je de verplaatsing van een voorwerp berekent door de snelheid te vermenigvuldigen met de tijdsduur van de verplaatsing.

De formule is s = v * t
Hierbij is s de te berekenen afstand, v de snelheid en t de tijd.

Bij een snelheid van 5 meter per seconde gedurende 2 seconden zal een afstand van 5 * 2 = 10 meter afgelegd worden.

Wil je dit in PHP programmeren, dan kun je bijvoorbeeld het volgende opschrijven:

<?php
  $v = 5;	// snelheid in meter per seconde
  $t = 2;	// tijdsduur in seconden

  echo "De snelheid is $v m/s<br>";
  echo "Gedurende $t seconden<br>";

  $s = $v * $t;	// bereken de afstand

  echo "<b>De afgelegde afstand is $s meter</b><br>"; // druk de afstand af
?>

Dit is het resultaat:

De snelheid is 5 m/s
Gedurende 2 seconden
De afgelegde afstand is 10 meter

Variabelen hebben een type

In het bovenstaande hebben we variabelen gebruikt om getallen in op te slaan en woorden of stukjes tekst. Een getal is iets anders dan een stukje tekst. Je kunt zeggen dat een constante of variabele van het type 'getal' is of 'string' of een ander type. Het type van een constante of variabele bepaalt vaak wat je ermee kunt doen. Je kunt twee getallen bij elkaar optellen maar een stuk tekst bij een ander stuk tekst optellen klinkt wat vreemd.

Een overzicht van de verschillende data-typen

PHP kent verschillende typen variabelen en constanten. Het type van een variabele wordt pas bepaald als het PHP programma uitgevoerd wordt, dus niet zoals bij veel programmeertalen bij het maken van het programma. Tijdens het uitvoeren kan het type van een variabele dan ook veranderen en dat is bij veel programmeertalen niet toegestaan. Dit heeft voordelen maar ook nadelen. Een voordeel is dat je je als programmeur niet druk hoeft te maken of je voor een variabele wel het juiste type kiest. Dat lijkt makkelijk maar kan ook tegen je werken, bijvoorbeeld als je denkt dat je twee getallen bij elkaar optelt maar in werkelijkheid een getal bij een stuk tekst optelt. Appels bij peren optellen of zoiets. Kortom, dit kan leiden tot verborgen fouten die moeilijk op te sporen zijn.

Getallen

Werken met getallen in PHP is heel eenvoudig. PHP zet zelf integers en reele getallen in elkaar om en je kunt de bekende voorrangsregels gebruiken. Toch is het aan te raden om haakjes te gebruiken als je niet zeker bent van de voorrang, want bijvoorbeeld 10 + 3 * (5 + 1) levert een ander antwoord op dan 10 + 3 * 5 + 1.

Characters

In veel programmeertalen wordt het datatype character of char gebruikt. Daarmee wordt dan meestal 1 letter bedoeld en het wordt vaak aangegeven met enkele quotes dus bijvoorbeeld 'a' of 'z' of '\n'. In PHP bestaat het datatype char niet als zodanig.

Strings

Een string is een rijtje van 1 of meer letters. Bij letters moet je dan niet alleen denken aan het alfabet, maar bijvoorbeeld spaties, tabs en leestekens vallen daar ook onder. Bij het toekennen van een string aan een variabele moet je quotes " gebruiken: $naam = "mijn_naam";

Bij wijze van voorbeeld staan hieronder wat strings:


Als je wilt dat er quotes in de string voorkomen dan moet je er een \ voor zetten, anders worden ze gebruikt om de string af te sluiten. Hetzelfde geldt voor een $-teken, want dat zou anders een variabele aanduiden.

Bijvoorbeeld:

Arrays

Deze verdienen een aparte uitleg.

Objecten

Die gaan we misschien later nog behandelen maar slaan we nu even over.