logo

Extra Block Types (EBT) - Nieuwe Layout Builder ervaring❗

Extra Block Types (EBT) - gestileerde, aanpasbare bloktypes: Slideshows, Tabs, Cards, Accordions en vele andere. Ingebouwde instellingen voor achtergrond, DOM Box, javascript-plugins. Ervaar vandaag al de toekomst van layout building.

Demo EBT-modules Download EBT-modules

❗Extra Paragraph Types (EPT) - Nieuwe Paragraphs ervaring

Extra Paragraph Types (EPT) - analoge op paragrafen gebaseerde set modules.

Demo EPT-modules Download EPT-modules

Scroll

PHP-lessen - les 8-2 - De switch-operator

09/10/2025, by Ivan

In de vorige les hebben we kennisgemaakt met de if-operator. De if-operator stelt ons in staat om een voorwaarde te controleren en, afhankelijk van het resultaat van die controle, de gewenste acties uit te voeren.


Laten we ons nu voorstellen dat we tien controles moeten uitvoeren en afhankelijk van het resultaat een van de tien acties moeten uitvoeren. Natuurlijk kunnen we dit schrijven met behulp van meerdere if-instructies:

<?php
  if($x == 1){
    // acties
  }
  if($x == 2){
    // acties
  }
  if($x == 3){
    // acties
  }
  if($x == 4){
    // acties
  }
  if($x == 5){
    // acties
  }
  if($x == 6){
    // acties
  }
  if($x == 7){
    // acties
  }
  if($x == 8){
    // acties
  }
  if($x == 9){
    // acties
  }
  if($x == 10){
    // acties
  }
?>

Deze manier werkt, maar het is beter om zulke controles te schrijven met behulp van de switch-operator.

PHP switch

De switch-operator maakt het mogelijk om de waarde van een expressie onder meerdere voorwaarden te testen. Laten we het bovenstaande voorbeeld herschrijven met switch:

<?php
  switch ($x){
    case 1:
      // acties
    break;
    case 2:
      // acties
    break;
    case 3:
      // acties
    break;
    case 4:
      // acties
    break;
    case 5:
      // acties
    break;
    case 6:
      // acties
    break;
    case 7:
      // acties
    break;
    case 8:
      // acties
    break;
    case 9:
      // acties
    break;
    case 10:
      // acties
    break;
    default:
      // acties als geen enkele andere case overeenkomt
  }
?>

Zoals ik eerder zei, werken beide voorbeelden op dezelfde manier. In het geval van switch hebben we echter de default-sectie toegevoegd, die wordt uitgevoerd als de waarde van $x niet tussen 1 en 10 ligt.

Laten we de structuur van de switch-instructie bekijken. Eerst komt het sleutelwoord switch, gevolgd door haakjes met de expressie die we willen controleren. Deze expressie kan zowel een getal als een tekenreeks zijn, bijvoorbeeld:

<?php
  switch ($x){
    case 'Hello':

    break;
    case 'Bye':

    break;
  }
?>

Na het opgegeven expressieblok volgen de accolades waarin we mogelijke waarden (cases) en bijbehorende acties opsommen:

<?php
  switch ($x){
    case 'Hello': // mogelijke waarde
      print $x;   // actie
    break; // einde van de case
    case 2:
      $x++;
    break;
  }
?>

Elke mogelijke waarde wordt gedefinieerd met case, gevolgd door de waarde (tussen aanhalingstekens voor tekst, zonder aanhalingstekens voor cijfers) en een dubbele punt. Daarna schrijven we de uit te voeren acties. Aan het einde van elke case gebruiken we break; om de uitvoering van de switch te stoppen.

Na alle case-blokken kunnen we default gebruiken. Dit gedeelte wordt uitgevoerd als geen enkele andere case overeenkomt of als we vergeten zijn een break; te plaatsen en de switch verdergaat. Hieruit volgen twee belangrijke regels:
1. Vergeet niet om break; te plaatsen aan het einde van elke case.
2. Voor default is break; niet verplicht, omdat het het laatste controlepunt is.

Hieronder zie je een stroomdiagram van de switch-operator:

Switch diagram

Als voorbeeld kunnen we zeggen dat dit diagram laat zien hoe we het aantal dagen van de week kunnen bepalen op basis van het aantal dagen sinds maandag.

<?php
// $D is het aantal dagen sinds maandag
$x = $D % 7;
switch ($x){
  case 1:
    print 'maandag';
  break;
  case 2:
    print 'dinsdag';
  break;
  case 3:
    print 'woensdag';
  break;
  case 4:
    print 'donderdag';
  break;
  case 5:
    print 'vrijdag';
  break;
  case 6:
    print 'zaterdag';
  break;
  case 7:
    print 'zondag';
  break;
}
?>