# Programmeren in PHP/Variabelen

Variabelen zijn opslagplaatsen voor waardes. Je kunt dit zien als een snelkoppeling naar een berekening of tekst. Dit kan handig zijn om later met de uitkomst door te rekenen of om te voorkomen dat je steeds dezelfde tekst moet typen.
In PHP gebruik je voornamelijk de volgende typen variabelen. Deze zullen op deze pagina worden uitgelegd.
* Integers (hele getallen)
* Floats (kommagetallen)
* Strings (tekst, leestekens en symbolen)
* Booleans ("waar" (true) of "niet waar" (false))
* Arrays (lijsten)
In dit hoofdstuk wordt gebruik gemaakt van de functie var_dump in plaats van het tot nu toe gebruikte echo. Deze functie geeft van de variabele het type en de waarde van de variabele. Voor de verschillende typen variabelen staat hieronder een voorbeeld: Daarnaast staan de voorbeelden op deze pagina tussen de <pre>...</pre> tags. Dit is om de uitvoer in HTML wat overzichtelijk op het scherm te krijgen (zie het onderstaande voorbeeld met en zonder <pre>...</pre> tags.
PHP-code: var_dump
De uitvoer met <pre>...</pre> tags:
De uitvoer zonder <pre>...</pre> tags:

## Variabelen in PHP

In PHP begint iedere variabele met een dollar-teken ($). Het volgende teken moet een letter (a-z, A-Z) of een underscore (_) zijn. Daarna mogen zowel letters, underscores en cijfers (0-9) zijn. Namen van variabelen zijn hoofdlettergevoelig. Het is gebruikelijk om variabelen een korte maar (duidelijke) beschrijvende naam te geven.
PHP-code: Variabelen declareren (aanmaken)
Wat nieuwe dingen:
* Het = teken stelt in de programmeertaal PHP een variabele gelijk aan de waarde die rechts van het = teken staat, $eten = "pizza"; stelt $eten gelijk aan pizza. Als dus echo $eten; zou worden uitgevoerd wordt er pizza op het scherm weergegeven.
* Op regel 3 declareren we de variabele $naam met de waarde Jan, die tussen aanhalingstekens staat omdat het een string is. Die waarde wordt gevolgd door een puntkomma om aan te geven dat we klaar zijn met deze regel.
* Op regel 8 en 9 worden twee Integers (getallen) gedeclareerd. Hier kunnen rekenkundige operaties op worden uitgevoerd, zoals optellen (+), aftrekken (-), vermenigvuldigen (*), delen (/), maar ook ingewikkeldere wiskundige functies, zoals kwadrateren of worteltrekken. In dit geval wordt het rekenen op regel 12 gedaan. Hier krijgt de variabele $antwoord de waarde afhankelijk van de twee andere variabelen. Er wordt hier dus geen letterlijke tekst (of getallen) neergezet, maar twee andere variabelen die bij elkaar opgeteld worden (9 + 9200 = 9209).

### Weak-typed PHP

PHP is weak-typed betreft variabelen. Dat wil zeggen dat het PHP niet uit maakt met wat voor soort variabele je werkt. Een Boolean kan dus net zo goed een Integer zijn en een Integer een String. Je kunt ze ook zonder moeite door elkaar gebruiken. Het is echter aan te raden om dit alleen te doen als het echt niet anders kan. Dit is netter voor je code en je voorkomt foutmeldingen, bijvoorbeeld als deze coulance in de toekomst wordt afgeschaft. In het voorbeeld hierboven werden 2 Integer opgeteld. Dit kan dus ook anders:
PHP-code: Weak-Typed variabelen
In bovenstaand stukje code tellen we een String (die een getal voorstelt), een Integer, een Float en een Boolean bij elkaar op. Met de functie var_dump is het type van de variabele $resultaat bepaald: de variabele is een float. Wanneer we deze doorgeven aan de echo functie wordt die echter omgezet in een string. Dit alles gebeurt onder de motorkap van PHP en zelden hoeft de schrijver van het script zich er iets van aan te trekken.

### Niet gedeclareerde variabelen

Een andere kwestie met variabelen is het vergeten te declareren, bijvoorbeeld als een gebruiker een getal vergeet in te vullen. De meeste programmeertalen geven een foutmelding en stoppen het script (fatal-error) als je dit zou doen, maar PHP geeft alleen een Notice (vorm van foutmelding) en gaat verder met het uitvoeren van het script. Als het nodig is wordt een standaard waarde, bijvoorbeeld 0 of "" (een lege string), aan de variabele gegeven. Hoewel het niet verstandig is om de invoer van een gebruiker niet te controleren maakt deze eigenschap van PHP het programmeren, vooral in het begin, een stukje makkelijker.
PHP-code: Niet gedeclareerde variabele
Dit geeft:
Omdat $c niet gedeclareerd is, wordt de standaard waarde 0 (integer) gebruikt.

## Integer

Een Integer is een geheel getal. Dus 1587 en -98 zijn integers, maar 3.1415 en 8.95 zijn geen integers.
PHP-code: Integer

## Floating Point Number

Een Floating Point Number (drijvende komma getal) of Float is een getal dat wordt samengesteld uit een kommagetal en een exponent (een macht van 10). Wanneer de exponent weggelaten wordt neemt PHP aan dat de exponent de waarde 0 heeft.
Geldige floating point numbers zijn:
* 3.1415926535
* 3e+8 (300000000)
* 3e-8 (0.00000003)
* -7.567e+4 (-75670)
* 6.02214e+23
Met een float kunnen grotere getallen opgeslagen worden dan met een integer maar dit gaat ten koste aan de precisie. Dat wil zeggen dat niet elk kommagetal kan worden voorgesteld, maar het zal meestal een benadering zijn. Doubles hebben twee keer zoveel precisie als Floats (vandaar de naam).

## String

Een string-variabele bevat een reeks letters, cijfers en leestekens in een vaste volgorde. Een string kan dus een woord of een zin zijn, maar het kan ook een tekst van honderden woorden zijn. Een string kan ook een naam, telefoonnummer of e-mailadres zijn.
Een string kan tussen apostrofs (' ') of tussen aanhalingstekens (" ") staan. Wanneer een string tussen aanhalingstekens staat dan worden variabelen die in de string geplaatst zijn vervangen door hun waarde, maar wanneer een string tussen apostrofs staat gebeurt dat niet.
Het volgende voorbeeld maakt dat duidelijk:
PHP-code: Strings met apostrofs of aanhalingstekens
Als je dit script uitvoert krijg je:
De eerste keer dat de regel Ik ben $leeftijd jaar oud. werd ge-echo-d stond deze tussen aanhalingstekens. De inhoud van de variabele $leeftijd werd daarom in de string geplaatst. De tweede keer werden er apostrofs gebruikt, waardoor er letterlijk '$leeftijd' werd ge-echo-d. Om bij het gebruik van apostrofs toch een variabele te gebruiken moet een string voor en na de variabelen 'geplakt' worden. In programmeren wordt dit wel concatenating genoemd. In PHP plak je strings aan elkaar met een punt (.). Omdat PHP zo makkelijk is met variabelen omgaat, kunnen integers, floats (doubbles) en booleans (alleen true, ge-echo-d als 1) ook worden geconcateneerd.

### Apostrofs en aanhalingstekens in een string

Het kan zijn dat je in je tekst apostrofen of aanhalingstekens moet gebruiken:
Hiervoor zijn twee mogelijkheden. Ten eerste kan je een apostrof weergeven als je aanhalingstekens gebruikt (zie #1) en omgekeerd (zie #2). Dit is vooral handig als je HTML-code moet weergeven, omdat hier bij attributen vaak aanhalingstekens worden gebruikt. Ook kan je het escape teken (backslash: \) gebruiken (zie #3 en #4). Hier kan je ook andere door PHP gebruikte speciale tekens in een string printen.
PHP-code: weergeven van apostroffen en aanhalingstekens

## Boolean

Een Boolean kan twee waardes hebben: True (waar, 1) of False (onwaar, 0). Booleans worden gebruikt om variabelen of bewerkingen met elkaar te vergelijken, zoals te zien is in het volgende voorbeeld. Zie de als-dan expressie voor meer uitleg over het vergelijken van variabelen.
PHP-code: Boolean

## Array

Lijsten, meestal array's (spreek uit: erreejs) genoemd, worden gebruikt om gezamenlijke gegevens bij elkaar te houden, en om te voorkomen dat je variabele namen als $a1 $a2 en $a3 gaat gebruiken. Een lijst bestaat uit een key (sleutel) en een waarde. De sleutel moet uniek zijn en wordt gebruikt om de juiste waarde te vinden in een array. Een waarde hoeft niet uniek te zijn maar is wel gebonden aan de sleutel/key. Je hebt verschillende soorten array's, namelijk: numerieke en associatieve array's.

### Numerieke Lijsten

Bij numerieke arrays wordt de sleutel meestal niet opgegeven door de programmeur, maar wordt deze ingevuld door PHP zelf. Dit is tevens de meest standaard array. Een numerieke lijst die door PHP aangemaakt is begint altijd met een 0 als sleutel (net zoals in java), in tegenstelling tot de 1 die je zou verwachten. Zo'n lijst maak je als volgt
PHP-code: Numerieke lijsten

### Associatieve lijsten

Associatieve lijsten hebben een woord of zin als sleutel en zijn voor de programmeur makkelijker te lezen dan numerieke lijsten. Let er op dat de namen van de sleutels, net als gewone variabelen, hoofdlettergevoelig zijn.
PHP-code: Associatieve lijsten