PHP 5 - arrays, (standaard)functies, number_format, argument-parameter, user-defined functies

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

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

time-iconLesduur is: 45 min

Onderdelen in deze les

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Fundament

D. Programmeren met PHP
Hoofdstuk 5
https://fundament-online.nl/leeromgeving/content.php?id=49124

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Leerdoelen
Na deze les kun je (voor PHP):
  • 3 verschillende soorten arrays benoemen
  • op twee manieren een array() definiëren in PHP
  • verschillende standaardfuncties benoemen
  • een user-defined functie in PHP schrijven
  • het verschil uitleggen tussen een argument en een
     parameter

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.
Switch (case)
Voorbeeld van website-foutcodes:

Slide 4 - Tekstslide

Deze slide heeft geen instructies

Foreach-loop



Foreach begint met het woord foreach en dan tussen haakjes eerst de $array en daarna de $variabele die als een soort parameter bij elke iteratie de waarde krijgt van een element

Slide 5 - Tekstslide

Deze slide heeft geen instructies

Array 1/3
Een array in PHP is een manier om meerdere waarden in één variabele op te slaan, net zoals een list dat is in Python
In PHP kun je een array op meerdere manieren maken, zoals:

Slide 6 - Tekstslide

Deze slide heeft geen instructies

Array 2/3
Er zijn verschillende soorten arrays:
  • numerieke arrays
    > deze array heeft een automatische index, begint met 0
  • associatieve arrays
    > een array met namen en waarden
  • multidimensionale array
    > een array met een of meer arrays als element
  • en meer...

Slide 7 - Tekstslide

Deze slide heeft geen instructies

Array 3/3
PHP kent heel veel manieren om met arrays te werken, maar belangrijk zijn bijvoorbeeld deze:
  • array_push()
  • array_merge()
  • array_delete()
  • array_slice()
  • count()

Slide 8 - Tekstslide

Deze slide heeft geen instructies

Numerieke Array
Net als een list in Python heeft een array in PHP een enumeratie/indexering/identifier die begint bij 0



Let op! In PHP kunnen negatieve getallen niet worden gebruikt in een array (je krijgt dan Undefined array key)


Slide 9 - Tekstslide

Deze slide heeft geen instructies

Associatieve Array
Zo ziet een associatieve array eruit:



(die kwam eerder al voorbij als voorbeeld)
Deze array heeft dus een sleutel en een waarde

Slide 10 - Tekstslide

Deze slide heeft geen instructies

Multi dimensionale Array
Geneste (multi-dimensionele) arrays
Het is ook mogelijk om een array in een array te gebruiken. Op deze manier is het mogelijk om een diepgaande datastructuur op te zetten.


Slide 11 - Tekstslide

Deze slide heeft geen instructies

Uitlezen array

Slide 12 - Tekstslide

Deze slide heeft geen instructies

Functies
PHP heeft (net als Python en JavaScript) functies

Deze vallen uiteen in twee soorten:
  1. standaardfuncties
  2. user-defined functies

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Standaardfuncties
Standaardfuncties zitten standaard in PHP
Een aantal standaardfuncties zagen we al eerder:
  • trim()
  • fgets()
  • bindParam()
  • htmlspecialchars()
(echo is strikt genomen geen functie, maar een constructie)

Slide 14 - Tekstslide

Deze slide heeft geen instructies

number_format()
Een handige standaardfunctie is number_format()
Volgorde params is: ($var,decimals,decimalpoint,separator)
Hiermee geef je een nummer een formattering, zoals:

$getal = 1999.8;
echo "resultaat: " number_format($getal, 2, ',', '.');
# resultaat: 1.999,80

Slide 15 - Tekstslide

Deze slide heeft geen instructies

str_replace()
Met str_replace() kun je 1 of meer tekens in een string vervangen door andere tekens

$tekst = "Oog voor de wereld!";
echo str_replace($tekst, '!', ', oog voor talent!');
# Oog voor de wereld, oog voor talent!

Slide 16 - Tekstslide

Deze slide heeft geen instructies

strlen() en count()
Met strlen() bepaal je de lengte van een string
Met count() bepaal je de lengte van een array
$tekst = "Oog voor de wereld!";
echo strlen($tekst); # 19

$array = array("appel", "banaan", "kers");
echo count($array)# 3

Slide 17 - Tekstslide

Deze slide heeft geen instructies

User-defined functions 1/3
De syntax van het declareren (lees: maken) van functies in PHP gaat iets anders dan Python en JavaScript:

function naamFunctie($evtParameters): uitvoersoort {
  # code komt hier;
}

Slide 18 - Tekstslide

Deze slide heeft geen instructies

User-defined functions 2/3
function naamFunctie($evtParameters): uitvoersoort {
  # code komt hier;
}
": uitvoersoort" is optioneel (mag, hoeft niet)
Deze "return type" geeft aan wat de uitvoer is van de functie, zoals:
int, float, string, void, array, object, bool

Slide 19 - Tekstslide

Deze slide heeft geen instructies

User-defined functions 3/3
Let op: in PHP kun je een formulier niet direct naar een functie sturen, omdat een functie geen zelfstandig onderdeel is dat je via een URL kunt aanroepen. Formulieren verzenden hun gegevens naar een PHP-bestand (zoals action="bestandsnaam.php") of naar dezelfde pagina (action=""), en binnen dat bestand kun je de verzonden gegevens verwerken door een functie aan te roepen

Slide 20 - Tekstslide

Deze slide heeft geen instructies

Argument en parameter
Als een functie wordt aangeroepen, dan kunnen daarbij argumenten worden gegeven

De functie accepteert die argumenten dan als parameters

Slide 21 - Tekstslide

Deze slide heeft geen instructies


Welke van deze PHP
functies is geen standaardfunctie?
A
echo()
B
strlen()
C
str_replace()
D
fgets()

Slide 22 - Quizvraag

Deze slide heeft geen instructies


Welke van deze PHP
functies is geen standaardfunctie?
A
print()
B
bindParam()
C
str_len()
D
htmlSpecialChars()

Slide 23 - Quizvraag

Deze slide heeft geen instructies


Welke van de volgende manieren is correct voor het definiëren van een functie in PHP?
A
function testFun($param) { echo $param; }
B
define testFun($param) { echo $param; }
C
createFun testFunction($param) { echo $param; }
D
declare testFun($param) { echo $param; }

Slide 24 - Quizvraag

Deze slide heeft geen instructies

Wat retourneert de
volgende functie
als deze wordt
aangeroepen met myFunction(3, 5);
A
8
B
15
C
35
D
0

Slide 25 - Quizvraag

Deze slide heeft geen instructies


Welke van de volgende regels in PHP geeft een foutmelding als je een user-defined functie maakt?
A
function myF($var1, $var2) { return $var1 + $var2; }
B
function myF($var1, var2) { return $var1 + $var2; }
C
function myF() { echo "Hello, world!"; }
D
function myF($var1) { return; }

Slide 26 - Quizvraag

B, want geen $ voor parameter var2
Opdracht User defined array
  1. maak ./htdocs/50.php
  2. zet daar een php blok in
    met de code rechts
  3. pas deze aan zodat: a) de argumenten cijfers zijn en worden opgeteld, b) het resultaat wordt opgeslagen in $resultaat, en c) $resultaat dikgedrukt op het scherm laat verschijnen
timer
5:00

Slide 27 - Tekstslide

<?php
function test($param1, $param2) {
  return $param1 + $param2;
}

$resultaat = test(1,4);
echo $resultaat;
?>
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 28 - Tekstslide

Deze slide heeft geen instructies

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 29 - Tekstslide

Deze slide heeft geen instructies

Leerdoelen
Nu kun je:
  • 3 verschillende soorten arrays benoemen
  • op twee manieren een array() definiëren in PHP
  • verschillende standaardfuncties benoemen
  • een user-defined functie in PHP schrijven
  • het verschil uitleggen tussen een argument en een
     parameter

Slide 30 - 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 31 - Tekstslide

Deze slide heeft geen instructies