Skip to main content

9 Logical operators en korte broeken

Wat ga je leren?

In deze les gaan we leren hoe we condities kunnen combineren.


We leren hoe we code alleen kunnen laten uitvoeren als er aan twee voorwaarden wordt voldaan.


En we leren hoe we code kunnen uitvoeren als er aan één van de twee voorwaarden wordt voldaan.

We hebben het gehad over if-then-else.

Met een if-then-else kun je voorwaardelijk code uitvoeren. Alleen als een bepaalde vergelijking waar is dan wordt bepaalde code uitgevoerd.

Stel je hebt een variabele $temperatuur waarin de temperatuur staat en stel je hebt een andere variabele waarin de dag van de week staat. Dus bijvoorbeeld:

$temperatuur = 21;
$dagVanDeWeek = 'ma';

Dus in dit voorbeeld is het maandag en de temperatuur is 21 graden. Stel dat ik code moet schrijven die mij advies geeft over het dragen van een korte broek. Ik wil alleen een korte broek aan doen als het zaterdag is én als de temperatuur minimaal 21 gragen is. Dat zijn dus twee voorwaarden die waar moeten zijn.

Hoe doe je dat in code?

$temperatuur = 21;
$dagVanDeWeek = 'ma';

if ( $temperatuur >= 21 && $dagVanDeWeek == "za" ) {
  echo "Advies is om vandaag een korte broek aan te trekken.";
} else {
  echo "Advies is om vandaag geen korte broek aan te trekken.";
}

Zie je het && - teken?

Dat betekent dat beide voorwaarden waar moeten zijn. Dus de temperatuur is groter of gelijk aan 21 graden én de dag van de week is 'za'.

Stel dat we nu op zaterdag of zondag altijd een korte broek willen dragen, hoe zou de code er dan uit zien?

$temperatuur = 21;
$dagVanDeWeek = 'ma';

if ( $dagVanDeWeek == "za" || $dagVanDeWeek == "zo" ) {
  echo "Advies is om vandaag een korte broek aan te trekken.";
} else {
  echo "Advies is om vandaag geen korte broek aan te trekken.";
}

Zie je het || - teken?

Dat betekent dat aan één van de voorwaarden moet worden voldaan. Dus als de dag van de week zaterdag óf zondag is dan volgt het advies voor het dragen van een korte broek.

In de voorbeelden gebruik ik && voor and en || voor or. In de meeste programmeertalen kun je ook gewoon het woord and en or gebruiken. Dat werkt in PHP ook.

Dus de volgende twee regels doen hetzelfde.

if ( $temperatuur >= 21 && $dagVanDeWeek == "za" ) {....

if ( $temperatuur >= 21 and $dagVanDeWeek == "za" ) {....

Dus samengevat



Betekenis
Voorbeeld
&&
and
AND, aan beide voorwaarden moet zijn voldaan
if ( $temperatuur >= 21 && $dagVanDeWeek == "za" ) {
||
or
OR, aan één van beide voorwaarden zijn voldaan
if ( $dagVanDeWeek == "za" || $dagVanDeWeek == "zo" ) {

Haakjes in condities

Stel we willen alleen een korte broek aan als de temperatuur minimaal 21 graden is én de dag zaterdag is of de dag zondag is.

Dan krijgen we de volgende code:

if ( $temperatuur >= 21 && $dagVanDeWeek == "za" || $dagVanDeWeek == "zo" ) {

Maar stel dat het anders is. Op zondag willen we altijd een korte broek dragen en op zaterdag alleen als de temperatuur minimaal 21 graden is. Dus in code:

if ( $dagVanDeWeek == "zo" || $temperatuur >= 21 && $dagVanDeWeek == "za" ) {

Maar deze code is bijna hetzelfde als de vorige code, alleen de volgorde is anders. Om de code goed uit te voeren moeten we haakjes gebruiken:

Korte broek in het weekend als de temperatuur 21 graden of hoger is:

if ( $temperatuur >= 21 && ( $dagVanDeWeek == "za" || $dagVanDeWeek == "zo" )  ) {

Het geen tussen haakjes, de || wordt eerst uitgevoerd, daarna volgt de &&

Korte broek op elke zondag en zaterdag alleen als de temperatuur 21 graden of hoger is.

if ( ($temperatuur >= 21 && $dagVanDeWeek == "za" ) || $dagVanDeWeek == "zo" ) {

Hier wordt eerst de && uitgevoerd en daarna volgt de ||.

Opgave

$dagVanDeWeek='ma';
$feestdag='nee';
$vrijeDag='nee';

if ( ...... ) {
	echo "Advies is om 06:30 uur op te staan";
} else {
	echo "Lekker uitslapen";
}

Geef een advies om om 06:30 op te staan als:

  1. De dag van de week 'ma' is én er geen feestdag is.
  2. De dag van de week 'ma'of 'di'of 'wo' of 'do' of 'vr' is.
  3. De dag van het week geen zaterdag of zondag is.
  4. De dag van de week 'ma' is én er geen feestdag is én er geen vrije dag is.
  5. De dag van de week 'ma' of 'wo' is én er geen feestdag is én er geen vrije dag is.

<?php
$dagVanDeWeek=[ 'ma', 'di','wo','do','vr','za','zo','zo' ];
$feestdag=[ 'ja', 'nee'];
$vrijeDag=[ 'ja', 'nee'];

foreach($dagVanDeWeek as $dag) {
  foreach($feestdag as $fd) {
    foreach($vrijeDag as $vd) {

      echo "Test, vandaag is het $dag, feestdag: $fd, vrijde dag:$vd <br>";

      if ( ...... ) {
	    echo "Advies is om 06:30 uur op te staan";
      } else {
	    echo "Lekker uitslapen";
      }

      echo "<br>";
    }
  }    
}
Inleveren
  • php109-jouw-naam.php

Zet hierin de 5 condities. Gebruik onderstaande template en zorg ervoor dat jouw code is getest.

//De dag van de week 'ma' is én er geen feestdag is.
if (...) {

//De dag van de week 'ma'of 'di'of 'wo' of 'do' of 'vr' is.
if (...) {

//De dag van het week geen zaterdag of zondag is.
if (...) {

//De dag van de week 'ma' is én er geen feestdag is én er geen vrije dag is.
if (...) {

//De dag van de week 'ma' of 'wo' is én er geen feestdag is én er geen vrije dag is.
if (...) {