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;
$t = 2;
echo "De snelheid is $v m/s<br>";
echo "Gedurende $t seconden<br>";
$s = $v * $t;
echo "<b>De afgelegde afstand is $s meter</b><br>";
?>
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:
- "a"
- "PHP"
- "Programmeertaal"
- "Dit is ook een geldige string"
- "En dit ook, maar voor 100% duidelijkheid: afgesloten met newline\n"
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:
- "Een string met \" quotes"
- "Wil je \$ 10 of 10 Euro ?"
Arrays
Deze verdienen een aparte uitleg.
Objecten
Die gaan we misschien later nog behandelen maar slaan we nu even over.