Data Types
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:Vraag 1: Welk type hebben de variable $a en $b?
<?php
$a=12;
$b=13;"13";
echo 'A='.$a;
echo '<br>';
echo 'B='.$b;
echo '<br>';
echo $a+$b;
echo '<br>';
echo 'A='.$a+$b;
?>
Vraag:Vraag 2: Voer de bovenstaande code uit. Wat gebeurt er? Wat is er mis met regel 9?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.
AndersomTip: kanmet ook,.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.