PHP Tutorial.nl

Word een PHP expert!!!

Home » Control structures

Beheers logische beslissingen in PHP: Control structures uitgelegd

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.

OperatorBetekenisVoorbeeldResultaat
==Gelijk aan$a == $bWaar als $a gelijk is aan $b
!=Niet gelijk aan$a != $bWaar als $a niet gelijk is aan $b
>Groter dan$a > $bWaar als $a groter is dan $b
<Kleiner dan$a < $bWaar als $a kleiner is dan $b
>=Groter dan of gelijk aan$a >= $bWaar als $a groter dan of gelijk is aan $b
<=Kleiner dan of gelijk aan$a <= $bWaar als $a kleiner dan of gelijk is aan $b
===Identiek (gelijk en zelfde type)$a === $bWaar als $a gelijk is aan $b en van hetzelfde type
!==Niet identiek$a !== $bWaar 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.