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

1 / 24
suivant
Slide 1: Diapositive
InformaticaWOStudiejaar 4,5

Cette leçon contient 24 diapositives, avec quiz interactifs et diapositives de texte.

time-iconLa durée de la leçon est: 45 min

Éléments de cette leçon

Slide 1 - Diapositive

Cet élément n'a pas d'instructions

Fundament

D. Programmeren met PHP
Hoofdstuk 3.5 tmt 4.4
https://fundament-online.nl/leeromgeving/content.php?paragraaf_id=115061

Slide 2 - Diapositive

Cet élément n'a pas d'instructions

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

Slide 3 - Diapositive

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.
Switch (case) 1/4
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 4 - Diapositive

Cet élément n'a pas d'instructions

Switch (case) 2/4
Met switch geef je een lijst van exacte mogelijkheden, gevolgd door een default (standaardwaarde)...
let op, de standaardwaarde staat altijd onderaan!
Elke mogelijkheid begint met case en dan de waarde waarmee de variabele wordt vergeleken, dan volgt een : en dan de opdrachten als de case waar is, scheidt deze met een ; en eindig met break;

Slide 5 - Diapositive

Cet élément n'a pas d'instructions

Switch (case) 3/4
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 6 - Diapositive

Cet élément n'a pas d'instructions

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

Slide 7 - Diapositive

Cet élément n'a pas d'instructions

Opdracht switch
  1. Maak .\htdocs\04.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 teruggeven echo: "100%"
  • als 200 wordt ingevoegd wordt teruggegeven "200%" 
  • alle andere waarden geeft terug: "jammer joh!"
timer
5:00

Slide 8 - Diapositive

Cet élément n'a pas d'instructions

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 in een oneindige loop terecht te komen, waarop moet je dus letten bij een while loop? 

Slide 9 - Diapositive

Cet élément n'a pas d'instructions

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 in een oneindige loop terecht te komen, waarop moet je dus letten bij een while loop? 
dat (een variabele in) de voorwaarde wordt aangepast binnen de loop! 

Slide 10 - Diapositive

Cet élément n'a pas d'instructions

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 11 - Diapositive

Cet élément n'a pas d'instructions

While-loop 3/3

Slide 12 - Diapositive

Cet élément n'a pas d'instructions

For-loop 1/2
Een for-loop geldt een vastgesteld aantal keer, dus het gevaar op een oneindige loop is niet heel groot

De syntax van de for-loop lijkt erg op die van JS:
for ( start; voorwaarde; wijziging per stap ) {
  # code hier
}

Slide 13 - Diapositive

Cet élément n'a pas d'instructions

For-loop 2/2





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

Slide 14 - Diapositive

Cet élément n'a pas d'instructions

Maak een while loop met
$teller die start bij 0, en
stopt bij 10 iteraties
timer
3:00

Slide 15 - Question ouverte

$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, stopt bij 10 iteraties,
met stappen van 2
timer
3:00

Slide 16 - Question ouverte

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

let op: 
$ voor variabele
; tussen elk onderdeel in de () 
+= 2
; na de regel in het blok
Foreach-loop 1/3
Een foreach-loop in PHP is hetzelfde als een for/in-loop van Python en hetzelfde als de .forEach() methode van JS

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 17 - Diapositive

Cet élément n'a pas d'instructions

Foreach-loop 2/3



De syntax van de loop is dat we beginnen met foreach en dan tussen haakjes eerst de array en dan de variabele waar we elk element langs zien komen... en die kunnen we dan tellen of bewerken of zoiets 

Slide 18 - Diapositive

Cet élément n'a pas d'instructions

Foreach-loop 3/3
We gebruiken een foreach-loop dus feitelijk alleen in combinatie met een array... maar het is zo handig dat we bijvoorbeeld ook een string omzetten naar een array om dan foreach te gebruiken, bijvoorbeeld om de klinkers te tellen in een woord
Dan gebruiken we bijvoorbeeld de PHP functies str_split() of
explode()

Slide 19 - Diapositive

Cet élément n'a pas d'instructions

Opdracht foreach
  1. .\htdocs\04.php
  2. Neem de code
    rechts over
  3. Vul de code van de foreach loop toe, zodat de 5 klinkers worden geteld (de echo voor teruggeven is er al)
  4. Voeg code toe die het woord met explode() naar een array omzet en doe daar ook een foreach loop voor
timer
10:00

Slide 20 - Diapositive

Cet élément n'a pas d'instructions

Opdracht # ? PHP filter
Idee:
maak in PHP een pagina die van alle niet PHP bestanden in dezelfde folder een downloadlink in een ongeordende lijst maakt, en maak daarboven een edit link die deze lijst kan "filteren", zodat de gebruiker een bepaald bestand kan zoeken
timer
5:00

Slide 21 - Diapositive

Cet élément n'a pas d'instructions

Opdracht # ? SSL
Idee:
voeg een SSL certificaat toe
volg deze leidraad (nog testen!): https://gist.github.com/nguyenanhtu/33aa7ffb6c36fdc110ea8624eeb51e69
of
https://robsnotebook.com/xampp-ssl-encrypt-passwords/
timer
5:00

Slide 22 - Diapositive

Cet élément n'a pas d'instructions

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

Slide 23 - Diapositive

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 24 - Diapositive

Cet élément n'a pas d'instructions