PHP 4 - Switch-case, while, for, foreach

1 / 28
volgende
Slide 1: Tekstslide
InformaticaWOStudiejaar 4,5

In deze les zitten 28 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 45 min
Dit is niet oké

Onderdelen in deze les

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Lesstof

InformaticaBaas
D. PHP en SQL - SMC
PHP 4.1 

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Leerdoelen
Na deze les kun je (in PHP):
  • het verschil uitleggen tussen for- en while-loop
  • een for- en while-loop coderen
  • een foreach-loop beschrijven en coderen
  • in_array() kunnen toepassen
  • in je eigen woorden uitleggen wat switch doet
  • een simpel voorbeeld van switch coderen

Slide 3 - Tekstslide

Rode achtergrond betekent: klas is stil, dit zijn de leerdoelen en quizzes waarbij niet overlegd mag worden.

Doel van deze les is om het leren zichtbaar te maken voor zowel leerling als docent.
While-loop 1/3
De while-loop kennen we nog van Python en JavaScript
Deze loop (of lus) gaat door zolang de voorwaarde True is

Deze loop heeft het gevaar van de oneindige loop ...
Waar moet je dus op letten bij een while loop? 

Slide 4 - Tekstslide

Deze slide heeft geen instructies

While-loop 1/3
De while-loop kennen we nog van Python en JavaScript
Deze loop (of lus) gaat door zolang de voorwaarde True is

Deze loop heeft het gevaar van de oneindige loop ...
Waar moet je dus op letten bij een while loop? 
dat (een variabele in) de voorwaarde wordt aangepast binnen de loop! 

Slide 5 - Tekstslide

Deze slide heeft geen instructies

While-loop 2/3
De syntax is nagenoeg hetzelfde als in JS:

while ( voorwaarde ) {
  # hier code uitvoeren
  # voorwaarde aanpassen!
}
            de voorwaarde is bijvoorbeeld $var1 > 10 

Slide 6 - Tekstslide

Deze slide heeft geen instructies

While-loop 3/3

Slide 7 - Tekstslide

Deze slide heeft geen instructies

For-loop 1/2
Een for-loop herhaalt een bepaald aantal keer (maar kan onderbroken worden), dus het gevaar op een oneindige loop is niet heel groot maar wel aanwezig
De PHP for-loop lijkt qua syntax erg op die van JavaScript:
for ( start; voorwaarde; wijziging per stap ) {
  # code hier
}

Slide 8 - Tekstslide

Deze slide heeft geen instructies

For-loop 2/2





Aan het einde van elke iteratie vindt de wijziging per stap plaats ( in bovenstaande is dat dus $i++ )

Slide 9 - Tekstslide

Deze slide heeft geen instructies

Wat is een juiste for-loop?
A
for (i=0

Slide 10 - Quizvraag

Deze slide heeft geen instructies

Maak een while loop met
$teller die start bij 0, en
stopt zodra er 9 iteraties zijn geweest
timer
3:00

Slide 11 - Open vraag

$teller = 0;
while ( $teller < 10 ) {
$teller++;
}

let op: 
$ voor variabele
variabele gedefinieerd voor de loop
; na de regel in het blok
Maak een for-loop met $i,
start bij 1, precies stopt op 10 iteraties,
in stappen van 2
timer
3:00

Slide 12 - Open vraag

for ( $i = 1; $i < 20; $i += 2 ) {
# code hier;
}

let op: 
$ voor variabele
; tussen elk onderdeel in de () 
+= 2
; na de regel in het blok
Foreach-loop 1/3
Met een foreach-loop "loop" je over de elementen van een array (wat we lijst noemden in Python), waarna je er iets mee kunt doen (bijvoorbeeld tellen)...



Slide 13 - Tekstslide

Deze slide heeft geen instructies

Foreach-loop 2/3



De syntax van de loop is dat we beginnen met foreach en dan tussen haakjes eerst de array, gevolgd door as en dan de variabele waar we elk element langs zien komen
Die laatste variabele verandert dan per iteratie

Slide 14 - Tekstslide

Deze slide heeft geen instructies

Foreach-loop 3/3
We gebruiken een foreach-loop dus feitelijk alleen
in combinatie met een array...
 
handig in dat verband is de PHP functie str_split() waarmee een string een array wordt

Je kunt ook een foreach-loop in een foreach-loop gebruiken

Slide 15 - Tekstslide

Deze slide heeft geen instructies

Array
In PHP kun je een array ook handmatig maken met de standaard functie array()


Slide 16 - Tekstslide

Deze slide heeft geen instructies

"iets" in array?
Om te kijken of "iets" in een array zit, gebruiken we in PHP de standaardfunctie in_array()

$needle = "e";
$haystack = array("a","b","c","d","e");
$uitkomst = in_array($needle,$haystack); // true

Let op: je ziet alleen OF iets voorkomt, NIET hoe vaak!

Slide 17 - Tekstslide

Deze slide heeft geen instructies

Opdracht foreach
  1. .\htdocs\04.php en kopieer de code rechts
  2. Maak pseudocode waarmee de 5 klinkers worden geteld


timer
3:00

Slide 18 - Tekstslide

Deze slide heeft geen instructies

Opdracht foreach
  1. .\htdocs\04.php en kopieer de code rechts
  2. Maak nu de echte code, zodat de 5 klinkers worden geteld


Tip: 
gebruik een foreach-loop 
met in_array()
timer
10:00

Slide 19 - Tekstslide

Deze slide heeft geen instructies

Opdracht foreach
<?php
  $woord = "bananarama";
  $woord_letters = str_split($woord);
  $klinkers = array("a","e","i","o","u","y");
  $count = 0;
  
  foreach($woord_letters as $wletter) {
    if (in_array($wletter,$klinkers)) {
      $count++;
    }
  }
  
  print_r($woord . " heeft " . $count . " klinkers");
?>

Slide 20 - Tekstslide

Deze slide heeft geen instructies

Switch (case) 1/5
Een nieuw concept (voor ons) is de switch-selectie

Hiermee kan worden voorkomen dat je een hele lange if-else if-statement maakt, wat snel heel onoverzichtelijk kan worden 

Slide 21 - Tekstslide

Deze slide heeft geen instructies

Switch (case) 2/5
Switch heeft een aparte syntax:
switch ($var) {
   case geval1 : gevolg1; break;
   case geval2 : gevolg2; break; 
   default : gevolg0; break;
}
Per case wordt gekeken of die gelijk is aan $var 

Slide 22 - Tekstslide

Deze slide heeft geen instructies

Switch (case) 3/5
Met switch geef je een lijst van mogelijkheden, gevolgd door een default (standaardwaarde)...
 
Let op, de standaardwaarde staat altijd onderaan!

Slide 23 - Tekstslide

Deze slide heeft geen instructies

Switch (case) 4/5
Elke optie (case)
  • begint met case en 
  • dan de waarde waarmee de variabele wordt vergeleken,
  • dan volgt een : en 
  • dan de opdrachten als de case waar is,
     scheid deze met een ; en eindig met break;

Slide 24 - Tekstslide

Deze slide heeft geen instructies

Switch (case) 5/5
Voorbeeld van website-foutcodes:

Slide 25 - Tekstslide

Deze slide heeft geen instructies

Switch
  1. Maak .\htdocs\05.php
  2. Voeg een input-veld toe waar de gebruiker een getal kan invoeren, met een submit-knop
  3. Voeg in PHP code toe met switch-code, waardoor:
  • als 100 wordt ingevoerd wordt teruggegeven: "100%"
  • als 200 wordt ingevoerd wordt teruggegeven: "200%" 
  • alle andere waarden geeft terug: "jammer joh!"
timer
5:00

Slide 26 - Tekstslide

Deze slide heeft geen instructies

Leerdoelen
Nu kun je (in PHP):
  • het verschil uitleggen tussen for- en while-loop
  • een for- en while-loop coderen
  • een foreach-loop beschrijven en coderen
  • in_array() kunnen toepassen
  • in je eigen woorden uitleggen wat switch doet
  • een simpel voorbeeld van switch coderen

Slide 27 - Tekstslide

Rode achtergrond betekent: klas is stil, dit zijn de leerdoelen en quizzes waarbij niet overlegd mag worden.

Doel van deze les is om het leren zichtbaar te maken voor zowel leerling als docent.

Slide 28 - Tekstslide

Deze slide heeft geen instructies