Met if en else kun je code alleen uitvoeren als aan een bepaalde voorwaarde wordt voldaan. De structuur is:
if (voorwaarde) {
// Code als voorwaarde true is
} else {
// Code als voorwaarde false is
}
Een voorbeeld met een leeftijdscontrole:
$leeftijd = 20;
if ($leeftijd >= 18) {
echo "Je bent volwassen";
} else {
echo "Je bent minderjarig";
}
Let op: De voorwaarde staat altijd tussen ronde haakjes (). De code die bij de voorwaarde hoort staat tussen accolades {}. Vergeet deze niet, anders werkt je code niet zoals verwacht!
Maak een variabele $getal met waarde 10. Schrijf een if-statement dat controleert of het getal groter is dan 5. Zo ja, toon "Groot getal".
Maak een variabele $leeftijd met waarde 16. Schrijf een if/else dat controleert of de leeftijd 18 of hoger is. Toon "Toegang verleend" of "Toegang geweigerd".
Maak een variabele $temperatuur met waarde -3. Als de temperatuur onder 0 is, toon "Het vriest!". Anders toon "Het vriest niet.".
Maak een variabele $isIngelogd met waarde true. Als de gebruiker is ingelogd, toon "Welkom terug!". Anders toon "Log in om verder te gaan.".
De variabele $score is al aangemaakt. Als de score 50 of hoger is, toon "Geslaagd". Anders toon "Niet geslaagd".
De variabelen $saldo en $prijs zijn al aangemaakt. Controleer of het saldo genoeg is om het product te kopen. Toon "Aankoop gelukt" of "Onvoldoende saldo".
Maak een variabele $dag met waarde "zaterdag". Controleer of het weekend is (zaterdag of zondag). Toon "Het is weekend!" of "Het is een doordeweekse dag.". Gebruik de || (of) operator.
Met elseif kun je meerdere voorwaarden achter elkaar controleren. PHP controleert ze van boven naar beneden en voert de code uit bij de eerste voorwaarde die true is.
$score = 75;
if ($score >= 90) {
echo "Uitstekend";
} elseif ($score >= 70) {
echo "Goed";
} elseif ($score >= 50) {
echo "Voldoende";
} else {
echo "Onvoldoende";
}
Je kunt ook de logische operatoren && (en) en || (of) gebruiken om meerdere voorwaarden te combineren:
$leeftijd = 25;
$heeftRijbewijs = true;
if ($leeftijd >= 18 && $heeftRijbewijs) {
echo "Je mag autorijden";
}
Maak een variabele $cijfer met waarde 7. Schrijf een if/elseif/else dat het volgende toont: 9 of hoger: "Uitstekend", 7 of hoger: "Goed", 5.5 of hoger: "Voldoende", anders: "Onvoldoende".
Maak een variabele $uur met waarde 14. Schrijf een begroeting op basis van het tijdstip: voor 12: "Goedemorgen", voor 18: "Goedemiddag", anders: "Goedenavond".
Maak variabelen $leeftijd met waarde 25 en $heeftKaartje met waarde true. Controleer of BEIDE voorwaarden waar zijn (leeftijd >= 18 EN heeft kaartje). Toon "Welkom bij het evenement" of "Geen toegang".
De variabelen zijn al aangemaakt. Bepaal de verzendkosten: als het totaalbedrag 50 of hoger is, zijn de verzendkosten gratis (0). Anders zijn de verzendkosten 6.95. Toon "Verzendkosten: € [bedrag]".
De variabelen zijn al aangemaakt. Bepaal het kortingspercentage op basis van het aankoopbedrag: boven 200 euro: 15% korting, boven 100 euro: 10% korting, boven 50 euro: 5% korting, anders: geen korting. Bereken de $korting en de $eindprijs. Toon: "Korting: [percentage]% - Eindprijs: € [bedrag]".
Maak variabelen $isLid met waarde true, $leeftijd met waarde 65. Bepaal de entreebprijs: leden betalen altijd 5 euro, niet-leden van 65 of ouder betalen 8 euro, alle andere niet-leden betalen 12 euro. Toon "Entreeprijs: € [bedrag]".
Maak variabelen $uur met waarde 10, $isWeekend met waarde false, en $naam met waarde "Jan". Maak een begroeting op basis van het tijdstip (voor 12: Goedemorgen, voor 18: Goedemiddag, anders: Goedenavond). Als het weekend is, voeg er " - Fijn weekend!" aan toe. Toon het volledige bericht als: "[begroeting], [naam]" (plus weekend-tekst indien van toepassing).
Het switch-statement is een alternatief voor meerdere if/elseif-blokken wanneer je een variabele vergelijkt met vaste waarden. Vergeet niet break te gebruiken na elke case, anders worden de volgende cases ook uitgevoerd!
$rol = "admin";
switch ($rol) {
case "admin":
echo "Volledige toegang";
break;
case "editor":
echo "Kan berichten bewerken";
break;
case "gebruiker":
echo "Alleen lezen";
break;
default:
echo "Onbekende rol";
break;
}
Let op: Vergeet nooit het break-statement na elke case! Zonder break gaat PHP gewoon door naar de volgende case (dit heet "fall-through"). Het default-blok wordt uitgevoerd als geen enkele case overeenkomt.
Maak een variabele $dag met waarde "maandag". Schrijf een switch-statement dat voor maandag "Start van de werkweek" toont, voor vrijdag "Bijna weekend!" toont, en voor alle andere dagen "Gewone dag" toont.
Maak een variabele $kleur met waarde "rood". Schrijf een switch met cases voor "rood" (toon "Stop"), "oranje" (toon "Wachten"), "groen" (toon "Doorrijden"), en default (toon "Onbekende kleur").
Maak een variabele $rol met waarde "editor". Schrijf een switch dat de rechten toont: "admin" krijgt "Volledige toegang", "editor" krijgt "Kan berichten bewerken", "gebruiker" krijgt "Alleen lezen", en default is "Geen toegang".
De variabele $maand is al aangemaakt. Schrijf een switch dat het seizoen toont: maanden 3, 4, 5 zijn "Lente", maanden 6, 7, 8 zijn "Zomer", maanden 9, 10, 11 zijn "Herfst", maanden 12, 1, 2 zijn "Winter".
De variabele $httpCode is al aangemaakt. Schrijf een switch dat de betekenis toont: 200 is "OK", 301 is "Verplaatst", 404 is "Niet gevonden", 500 is "Serverfout", en default is "Onbekende statuscode".
De ternary operator is een verkorte schrijfwijze voor een simpele if/else. De syntax is:
$resultaat = (voorwaarde) ? waarde_als_true : waarde_als_false;
Voorbeeld:
$leeftijd = 20;
$status = ($leeftijd >= 18) ? "volwassen" : "minderjarig";
echo $status; // Toont: volwassen
Dit is hetzelfde als:
if ($leeftijd >= 18) {
$status = "volwassen";
} else {
$status = "minderjarig";
}
Maak een variabele $leeftijd met waarde 20. Gebruik de ternary operator om "Volwassen" of "Minderjarig" op te slaan in $status. Toon het resultaat.
Maak een variabele $score met waarde 72. Gebruik de ternary operator om "Geslaagd" of "Gezakt" te tonen (grens is 55). Toon het resultaat direct met echo.
Maak een variabele $voorraad met waarde 0. Gebruik de ternary operator om de tekst "Op voorraad" of "Uitverkocht" op te slaan in $beschikbaarheid. Toon het resultaat.
De variabelen zijn al aangemaakt. Gebruik de ternary operator om de verzendkosten te bepalen: gratis (0) als het bedrag 50 of hoger is, anders 6.95. Toon: "Verzendkosten: € [bedrag]".
De variabelen zijn al aangemaakt. Gebruik de ternary operator om de CSS-class te bepalen: als $isActief true is, gebruik "actief", anders "inactief". Toon een HTML-paragraaf: <p class="[class]">Gebruiker</p>.
Maak een dashboard-achtig voorbeeld. Maak variabelen $uur met waarde 9, $naam met waarde "Sara", en $aantalBerichten met waarde 5. Gebruik ternary voor de begroeting (voor 12 is "Goedemorgen", anders "Goedemiddag"). Gebruik nog een ternary voor het bericht over berichten ("Je hebt [aantal] nieuwe berichten" als aantal > 0, anders "Geen nieuwe berichten"). Toon alles op het scherm.
Bouw een compleet mini-dashboard. Maak variabelen $naam met waarde "Tim", $rol met waarde "admin", $uur met waarde 20, $aantalTaken met waarde 3. Bepaal de begroeting met if/elseif/else (voor 12: Goedemorgen, voor 18: Goedemiddag, anders: Goedenavond). Bepaal de rechten met switch (admin: "Volledige toegang", editor: "Beperkte toegang", default: "Alleen lezen"). Bepaal de takenstatus met ternary (als taken > 0: "Je hebt [aantal] openstaande taken", anders: "Alles afgerond!"). Toon alles onder elkaar met <br>.
In dit hoofdstuk heb je geleerd:
if, else en elseif&& (en) en || (of)switch-statement als alternatief voor meerdere elseif-blokkenbreak in een switch en wat fall-through betekentif/else