Statements
Nu we een beetje weten hoe we met variabelen in PHP kunnen werken, is het tijd om iets verder te gaan kijken. Alles dat we tot nu toe gezien hebben, zouden we in principe ook nog met simpele HTML code kunnen bereiken. Laten we nu eens wat dieper ingaan op een van de dynamische aspecten van PHP.
If/else statements
Statement is het Engels voor 'voorwaarde' en wordt zeer veel in PHP scripts gebruikt. Met PHP is het mogelijk om verschillende acties uit te voeren afhankelijk van de uitkomst van een bepaalde voorwaarde. De meest simpele voorwaarde die we kunnen stellen is de vergelijking van twee waarden. Zo zou je PHP bijvoorbeeld kunnen laten bepalen of een variabele groter of kleiner is dan 5 en afhankelijk daarvan een reactie geven.
De makkelijkste constructie waarin we zo'n statement op kunnen nemen is een if/else constructie. De syntax ziet er als volgt uit:
De constructie begint met een if en vervolgens de voorwaarde tussen haakjes erachter. Tussen accolades {} volgt vervolgens het gedeelte dat uitgevoerd wordt als aan de vooraarde voldaan wordt. De else, die overigens niet verplicht is, bevat een alternatieve actie die uitgevoerd wordt als niet aan de voorwaarde voldaan wordt.
Allereerst kennen we de waarde 4 aan de variabele $x toe. Vervolgens controleren we in het if-statement of de variabele $x groter is dan 5 en voeren afhankelijk van die uitkomst een actie uit. In dit geval is dat een echo die de bepaalde situatie omschrijft.
Op deze pagina kun je een volledig overzicht vinden van de beschikbare vergelijkings operators. Ook kun je daar de werking van de verschillende operators onderzoeken.
De if/else constructie uit het vorige voorbeeld kunnen we nog iets verder uitbreiden:
Op deze manier kunnen we een if/elseif/else constructie in theorie oneindig ver uitbreiden. Er zit namelijk geen beperking op het aantal elseif statements.
Ook is het mogelijk om meerdere vergelijkingen in 1 statement op te nemen. Zo zouden we bijvoorbeeld kunnen controleren of $x groter is dan 5 en $y kleiner is dan 10:
Met behulp van de && (AND) operator kunnen we dus controleren of aan beide vergelijkingen voldaan wordt. De tegenhanger hiervan is de || (OR) operator waarmee je controleert of aan minimaal 1 van de vergelijkingen voldaan wordt.
In voorgaande voorbeelden hebben we enkel gekeken of een bepaalde vergelijking waar is. We kunnen ook het omgekeerde doen en kijken of een bepaalde vergelijking niet waar is:
Nu zien we dat het if-statement een waarheid oplevert en dus uitgevoerd wordt. Het ! in het if-statement levert dus: 'Als de volgende vergelijking niet waar is ...'.
Overigens zul je dit voorbeeldje niet vaak gebruiken om te controleren of iets niet groter is dan 5. Je zult dan meestal namelijk controleren of iets kleiner dan of gelijk aan 5 is:
Een overzicht met alle soorten operators is te vinden op php.net.
Switch statement
Als je een hele lange lijst met elseif statements krijgt, zou je die kunnen vervangen door een alternatieve constructie. Met een zogenaamd switch statement kun je een hele reeks voorwaarden loslaten op een bepaalde variabele. Dat ziet er bijvoorbeeld zo uit:
Met een switch statement kun je dus controleren welke waarde een variabele heeft. Je kunt net zoveel cases aanmaken als je wilt. Hierin controleer je of de variabele aan een bepaalde waarde voldoet. Achter de dubbele punt zet je vervolgens de code die je uit wilt voeren als de variabele aan de waarde in de case voldoet. Tenslotte sluit je de case af met een break. Gebruikelijk is het om ook een default actie mee te geven aan het switch statement, welke uitgevoerd wordt als de variabele aan geen van de cases voldoet.
Ingewikkeldere statements zijn echter ook mogelijk in een switch:
Op deze manier kunnen we een switch statement zo ingewikkeld maken als we maar willen. De keuze voor het gebruik van een switch statement hangt in de meeste gevallen af van de lengte van de if/else constructie en de hoeveelheid code die per statement uitgevoerd wordt.
Bij veel statements en weinig code per statement, is een switch makkelijk. Maar naarmate de hoeveelheid code toeneemt, is het waarschijnlijk weer overzichtelijker om toch met een if/else constructie te werken. Tenslotte ben je met een if/else constructie nog een stuk flexibeler.
Inhoudsopgave
- Inleiding
- Mijn eerste PHP script
- Variabelen
- Statements
- Loops
- Arrays
- Functies
- Formulieren
- Superglobals
- Sessies nader bekeken: een eerste loginscript
- Netjes scripten
- Debuggen: het oplossen van PHP fouten
- Slotwoord en referenties