We kunnen nu een tekst weergeven en een bepaalde waarde toekennen aan een variabele. Met deze variabele kunnen we vervolgens een bepaalde berekening uitvoeren. Nu wordt het tijd om bepaalde keuzes uit te voeren op basis van uitkomsten. Het maken van keuzes met logica is essentieel in programmeren omdat het ons in staat stelt om verschillende paden te volgen afhankelijk van de omstandigheden.
Soms wil je het verloop van het ‘programma’ in de ene situatie anders laten verlopen dan in de andere situatie. Hiervoor kunnen we if-else
statements gebruiken.
Stel we hebben een variabele $leeftijd
en we willen op basis hiervan iets tonen voor de mensen boven de 25 en iets anders voor de mensen die jonger zijn dan 25.
<?php
if ( $leeftijd > 25 ) {
echo 'Je bent de 25 voorbij.';
}
else {
echo 'Je bent nog geen 25 geweest.';
}
?>
Het bovenstaande voorbeeld kunnen we vertalen naar: Als leeftijd is groter dan 25 toon dan ‘Je bent de 25 voorbij.’ anders toon ‘Je bent nog geen 25 geweest.’
Wat nu als je een extra situatie wilt afhandelen? Dan kunnen we elseif
gebruiken.
<?php
if ( $leeftijd > 25 ) {
echo 'Je bent de 25 voorbij.';
}
elseif ( $leeftijd == 25 ) {
echo 'Je bent nu 25';
}
else {
echo 'Je bent nog geen 25 geweest';
}
?>
Condities
Een if
-statement bekijkt of een bepaalde verwachting overeenkomt. Dit noemen we een conditie. Het resultaat van een conditie zal waar (TRUE
) moeten zijn.
Condities combineren
Een if
-statement hoeft niet uit slechts één conditie te bestaan. Het is ook mogelijk om condities te combineren. Zo kun je aangeven dat de statement aan twee condities moet voldoen:
<?php
if ( $leeftijd > 16 AND $leeftijd < 18 ) {
echo "Je hebt waarschijnlijk een scooter en je bent bijna meerderjarig.";
}
?>
Toegegeven: hetif
-statement is vrij fragiel, maar in dit geval moet de leeftijd hoger zijn dan 16 en lager dan 18. We combineren beide condities met AND
, een equivalent hiervan is &&
.
We kunnen ook aangeven dat slechts één van de condities moet voldoen.
<?php
if ( $leeftijd < 18 OR $leeftijd > 25 ) {
echo 'je bent nog geen achttien of je bent de 25 jaar voorbij';
}
?>
In het bovenstaande voorbeeld kijken we of de leeftijd kleiner is dan 18 of juist hoger dan 25. We gebruiken hiervoor OR
, een equivalent hiervan is ||
. Bij OR
moet een van de condities voldoen.
Condities groeperen
Soms wil je OR
en AND
condities combineren. We moeten deze condities dan groeperen, omdat de OR
namelijk aangeeft dat een van de waarden hoeft te voldoen. De AND
wordt dan eenvoudig genegeerd als een waarde al voldoet.
<?php
if( $leeftijd > 18 OR $leeftijd < 25 AND $woonplaats == 'Amsterdam' ) {
echo 'Je hebt een goede leeftijd en je komt uit Amsterdam';
}
?>
Stel dat de leeftijd 19 is maar de $woonplaats
is Utrecht, dan zal er toch iets worden geëchood. Dit is niet de bedoeling. De leeftijd moet namelijk tussen de 18 en 25 liggen en de woonplaats moet Amsterdam zijn. We zullen de condities moeten groeperen. Dit doen we door ze tussen ronde haakjes te plaatsen.
<?php
if ( ( $leeftijd > 18 OR $leeftijd < 25 ) AND $woonplaats == 'Amsterdam' ) {
echo 'Je hebt een goede leeftijd en je komt uit Amsterdam';
}
?>
Operators
Bij het maken van condities kunnen we operators gebruiken. Operators zijn symbolen of woorden die aangeven hoe de waarden van variabelen vergeleken moeten worden.
Operator | Betekenis | Voorbeeld | Resultaat |
---|---|---|---|
== | Gelijk aan | $a == $b | Waar als $a gelijk is aan $b |
!= | Niet gelijk aan | $a != $b | Waar als $a niet gelijk is aan $b |
> | Groter dan | $a > $b | Waar als $a groter is dan $b |
< | Kleiner dan | $a < $b | Waar als $a kleiner is dan $b |
>= | Groter dan of gelijk aan | $a >= $b | Waar als $a groter dan of gelijk is aan $b |
<= | Kleiner dan of gelijk aan | $a <= $b | Waar als $a kleiner dan of gelijk is aan $b |
=== | Identiek (gelijk en zelfde type) | $a === $b | Waar als $a gelijk is aan $b en van hetzelfde type |
!== | Niet identiek | $a !== $b | Waar als $a niet gelijk is aan $b of niet van hetzelfde type |
Hieronder zie je enkele voorbeelden van het gebruik van operators in php
<?php
$a = 5;
$b = "5";
if ($a == $b) {
echo "Gelijk in waarde";
}
if ($a === $b) {
echo "Gelijk in waarde en type";
} else {
echo "Niet gelijk in waarde en type";
}
?>
Alternatieve Structuren
In plaats van lange if-else
ketens, kun je ook switch
statements en het nieuwe match
statement gebruiken voor eenvoudiger beheerbare code.
switch
statement
Switch
statements zijn handig voor eenvoudige vergelijking van een variabele tegen verschillende waarden.
<?php
$kleur = "rood";
switch ($kleur) {
case "rood":
echo "Stop!";
break;
case "geel":
echo "Voorzichtig!";
break;
case "groen":
echo "Ga!";
break;
default:
echo "Ongeldige kleur.";
}
?>
match
statement
Het match
statement, geïntroduceerd in PHP 8, biedt een krachtige en kortere manier om vergelijkingen te maken. Het retourneert een waarde op basis van een bepaalde conditie en heeft een striktere vergelijking (type-veilig).
<?php
$kleur = 'rood';
echo match ($kleur) {
'rood' => 'Stop!',
'geel' => 'Voorzichtig!',
'groen' => 'Ga!',
default => 'Ongeldige kleur.',
};
?>
Het match
statement is vergelijkbaar met switch
, maar biedt voordelen zoals het teruggeven van waarden en het ondersteunen van combinaties van condities.
Best practices
Hierbij ten slotte nog enkele tips om de code leesbaar te houden. Want je kunt je al snel verliezen in een beetje logica.
- Gebruik duidelijke en beschrijvende variabelen.
- Houd je condities zo eenvoudig en leesbaar mogelijk.
- Vermijd diepe geneste
if
statements door logica te simplificeren. - Maak gebruik van logische operatoren (
&&
,||
) om condities te combineren.