Voorwaardelijke uitvoering (if)

Inleiding

Soms wil je in je code bepaalde taken alleen uitvoeren in bepaalde situaties en anders niet. Hiervoor kun je zogenaamde if-statements gebruiken, waarmee je voorwaardelijk bepaalde taken kunt laten uitvoeren.

If-statements zijn in PHP (en in veel andere programmeertalen) van cruciaal belang omdat ze de basis vormen voor het maken van beslissingen in een programma. Met if-statements kan een programma bepaalde acties uitvoeren op basis van voorwaarden die waar of onwaar zijn.

Een aantal belangrijke redenen waarom if-statements van belang zijn in PHP:

  1. Voorwaardelijke (conditionele) uitvoering van code: If-statements stellen je in staat om code alleen uit te voeren als bepaalde voorwaarden waar zijn. Dit stelt je code in staat om flexibel te reageren op verschillende situaties.
  2. Het toepassen van logica: If-statements maken het mogelijk om complexe logica toe te passen in je code. Je kunt meerdere voorwaarden combineren met logische operatoren zoals and (&&), or (||) en not (!) om verschillende scenario's af te handelen.
  3. Foutafhandeling: If-statements kunnen worden gebruikt voor foutafhandeling. Door bepaalde voorwaarden te controleren, kan je script reageren op onverwachte omstandigheden en gepaste maatregelen nemen.
  4. Gebruikersinteractie: If-statements worden vaak gebruikt in combinatie met gebruikersinvoer om interactieve programma's te maken. Ze stellen je in staat om verschillende acties uit te voeren op basis van wat de gebruiker invoert.

Soorten if-statements

Andere voorwaardelijke uitvoering

if-statements

Met een if-statement kun je een bepaald stuk code alleen dan uit laten voeren in bepaalde situaties en anders niet.

syntax

if ( voorwaarde ) {
    ...
}

Hierin is de voorwaarde in veel gevallen een vergelijking tussen twee variabelen of een variabele en specifieke waarde. Het kan ook het resultaat van een functie of iedere andere expressie zijn, die als waar of onwaar kan worden beoordeeld.

Alle code tussen de accolades wordt alleen uitgevoerd wanneer de voorwaarde waar is. Wanneer voorwaarde niet waar is gaat de code verder na de sluit-accolade.

voorbeeld

<?php if ($aantal <= 0) { ?> <p class="error">Het aantal moet een positief getal zijn.</p> <?php } ?>

In dit voorbeeld wordt de waarde van de variabele aantal vergeleken met 0. Alleen wanneer de variabele aantal kleiner of gelijk aan 0 is, wordt de paragraaf met de foutmelding weergegeven.

else-statements

Vaak wil je bepaalde code alleen uitvoeren als aan een bepaalde voorwaarde is voldaan, en een andere code als niet aan de voorwaarde is voldaan.

Hiervoor is er het else-statement. Het else-statement breidt een if-statement uit om bepaalde code uit te voeren in het geval dat de voorwaarde niet waar is.

syntax

if ( voorwaarde ) {
    ...
} else {
    ...
}

Alle code tussen de eerste set accolades wordt alleen uitgevoerd wanneer de voorwaarde waar is. Anders wordt juist alleen de code tussen de tweede set accolades uitgevoerd.

voorbeeld

<?php if ($a > $b) { $verschil = $a - $b; } else { $verschil = $b - $a; } ?>

In dit voorbeeld wordt de positieve waarde voor het verschil tussen de getallen a en b berekend. Als a groter is dan b wordt het verschil gelijk aan a min b en anders b min a.

elseif-statements

Het elseif-statement is, zoals de naam al doet vermoeden, een combinatie van if en else. Net als het else-statement breidt het een if-statement uit om een ​​andere code uit te voeren in het geval dat de voorwaarde bij if niet waar is. In tegenstelling tot het else-statement zal de alternatieve code alleen worden uitgevoerd als de voorwaarde bij het elseif-statement waar is.

syntax

if ( voorwaarde1 ) {
    ...
} elseif ( voorwaarde2 ) {
    ...
} elseif ( voorwaarde3 ) {
    ...
} else {
    ...
}

Alle code tussen de eerste set accolades wordt alleen uitgevoerd wanneer voorwaarde1 waar is. Als voorwaarde1 niet waar is wordt naar voorwaarde2 gekenen. Wanneer deze waar is wordt alle code tussen de tweede set accolades uitgevoerd. Wanneer ook voorwaarde1 niet waar is, wordt naar voorwaarde3 gekenen. Alleen wanneer alle voorwaarden niet waar zijn wordt de code tussen de accolades die horen bij het else-statement uitgevoerd.

Het aantal elsif-statements is onbeperkt. Je kunt zoveel alternatieve voorwaarden opgeven als je nodig hebt. Iedere alternatieve voorwaarde wordt echter alleen beoordeeld, wanneer alle voorgaande voorwaarden niet waar zijn.

Het else-statement mag hierbij ook weggelaten worden. Als je het wel gebruikt, moet het uiteraard als allerlaatste komen te staan. De code hierbij wordt dan alleen uitgevoerd, wanneer alle voorwaarden niet waar zijn.

voorbeeld

<?php if ($a > $b) { $verhouding = "groter dan"; } elseif ($a < $b) { $verhouding = "kleiner dan"; } else { $verhouding = "gelijk aan"; } ?> <div>Getal a is <?= $verhouding ?> getal b.</div>

In dit voorbeeld worden getallen a en b met elkaar vergeleken en de verhouding tussen deze twee (groter dan, kleiner dan of gelijk aan) weergegeven.

In plaats van het else-statement had hier ook nog een elseif-statement met de voorwaarde $a == $b gebruikt kunnen worden. Wanneer zowel de eerste als tweede voorwaarde niet waar zijn, kan het echter niet anders dan dat beide getallen gelijk aan elkaar zijn, dus else is in dit geval voldoende.

switch-statements

Een switch-statement is vergelijkbaar met een reeks if- of elseif-statements met steeds verschillende waardes voor steeds dezelfde variabele. Soms wil je misschien dezelfde variabele (of expressie) vergelijken met veel verschillende waarden, en een ander stuk code uitvoeren, afhankelijk van de waarde waaraan het gelijk is. Dit is precies waar het switch-statement voor is.

syntax

switch ( variabele ) {
    case waarde1:
        ...
        break;
    case waarde2:
        ...
        break;
    case waarde3:
        ...
        break;
    case default:
        ...
}

Hierbij wordt de variabele met een aantal waarden vergeleken (waarde1, waarde2, waarde3). De code die volgt na een waarde wordt alleen uitgevoerd wanneer de variabele gelijk is aan die betreffende waarde.

De default-case (case default) werkt als een else-statement. De code die hierna volgt wordt uitgevoerd, wanneer de variabele aan geen van de voorgaande waarden gelijk is. Deze case mag ook worden weggelaten.

Merk op dat aan het eind van de code na iedere case een break-statement staat. Wanneer deze wordt weggelaten, wordt ook de code bij de volgende waarde uitgevoerd en dat is in de meeste gevallen natuurlijk niet de bedoeling.

voorbeeld

<?php $som = "{$x} &{$operator}; {$y}"; switch ($operator) { case 'plus': $uitkomst = $x + $y; break; case 'minus': $uitkomst = $x - $y; break; case 'times': $uitkomst = $x * $y; break; case 'divide': $uitkomst = $x / $y; break; case 'power': $som = "{$x}<sup>{$y}</sup>"; $uitkomst = $x ** $y; break; } ?> <div><?= $som ?> = <?= $uitkomst ?></div>

In dit voorbeeld wordt de variabele operator vergeleken met een aantal verschillende waardes (plus, minus etc.). Afhankelijk van de waarde van de variabele operator wordt er een andere berekening uitgevoerd met de variabelen x en y.