Skip to main content

Variabelen en Data Types

In deze les gaan we  kijken naar wat variabelen en datatypen zijn en hoe PHP hier mee omgaat.

Variabelen

Variablen zijn 'doosjes' waarin we gegevens in op kunnen slaan. We kunnen verschillende soorten gegevens in zo'n 'doosje' stoppen; getallen in de vorm van integers, floats en ook woorden die we strings noemen. Ten slotte onderscheiden we booleans, 1 of 0, true of false (waar of niet-waar).

<?php
$tekst = 'Hello World!'; // String
$leeftijd = 20; // Integer
$prijs = 135.75; // Float
$check = true; // Boolean
?>

Loosely typed

In somigen programmeertalen moet je variabelen eerst declareren. Je geeft daarmee van te voren aan welke variablen je gaat gebruiken en welk type gegevens je in deze variabele gaat opslaan. In PHP hoeft dat niet. PHP noemen we daarom een "loosely typed language". We hoeven dus niet van te voren aan te geven voor soort gegevens we in een variabele gaan opslaan. PHP probeert zo goed mogelijk zelf te bepalen welk soort gegevens er in een variabale staan. Meestal gaat dat goed maar we zullen zien dat dat niet altijd zo is.

Type Casting

We kunnen bewerkingen doen met variabelen, bijvoorbeeld optellen.

<?php
$a="12";
$b=13;
echo $a+$b;
?>

Vraag 1: Welk type hebben de variable $a en $b?

<?php
$a=12;
$b="13";

echo 'A='.$a;
echo '<br>';
echo 'B='.$b;
echo '<br>';
echo $a+$b;
echo '<br>';
echo 'A='.$a+$b;
?>

Vraag 2: Voer de bovenstaande code uit. Wat gebeurt er? Wat is er mis met regel 11?

Je kunt dus PHP forceren om een variabele, of een uitkomst van een berekening een bepaald type te geven. Bijvoorbeeld:

echo 'A='.(string)()$a+$b);

Hiermee vertel je PHP dat het resultaat van $a+$b moet worden omgezet in een type string. En om die manier kun je de uitkomt via echo afdrukken. Dit noem je type casting.

Tip: met de echo gettype($a); kun je het type dat PHP aan een variabele toekent laten zien.

PHP zet dus zelf het type van een variable om. Maar in het voorbeel dhebben we gezien dat dat niet altijd goed gaat en dan moeten wij in PHP aangeven wat er moete gebeuren.

Stel je wilt 13/2 berekenen. De uitkost is 6.5 en dat is een float. Maar stel dat je altijd een intereger wilt hebben dan zal je dat moeten aangeven met een type cast:

echo (int)($b/$a);

Vraag: wat gebeurt er als de tweede set haakjes weg laat dus: echo (int)$b/$a;

Vraag 3: Leg uit wat er gebeurt als je dit laatste statement uitvoerd.

Math

Zoek op en beschrijf van de volgende statements wat ze doen en wat de uitkomst is.

abs(-3.4);  
max(3,4,2,0,-2)  
min(3,4,2,0,-2)  
rand(1,25)  

echo 3+2*4

 

echo 3**2

 

$a++ neemt de variable $a en verhoogd hem. Stel $a=3 en je doet echo $a++ wat verwacht je en wat zie je?

Voer deze code uit.

<?php
$i=3;
echo $i++;
echo $i;
?>

Vraag 4: leg uit hoe deze code werkt.

<?php
$i=3;
echo ++$i;
echo $i;
?>

Vraag 5: leg uit hoe deze code werkt.

In plaats van $a++ kun je ook $a-- gebruiken.

Vraag 6: stel je vervangt ++ in -- in de vorige code. Voorspel wat er gebeurt en test of het klopt.