PHP - refresh opgaven
Inleiding
Het is waarschijnlijk weer even geleden dat je met PHP heb gecodeerd. Om de kennis wat op te frissen zijn er in deze module 10 opgaven. In alle opgaven worden onderwerpen behandeld die in voorgaande modules al zijn behandeld.
Is er niets nieuws? Ja zeker wel. We leren wat HTML refresh is en we maken een begin met gestructureerd testen.
Wat leren we?
Opgave 1 gaan we naar de $_GET variabele kijken. Weet je nog wat dat was?
Opgave 2 gaan we kijken naar forms en de $_GET variabele.
Opgave 3 gaat over loops.
In Opgave 4 gaan we voor de afwisseling iets nieuws (html refresh) ontdekken.
Vanaf opgave 5 gaan we naar functies kijken. We maken steeds een stukje code in een functie en gaan ook leren hoe we deze functie moeten testen. Testen is een onderdeel van examen en je zlt moeten aantonen dat je gestructureerd kan testen. Deze opgave zijn daar een aanzet toe.
Opgave 1, $_GET
In deze opgave kijken we terug hoe het ook alweer zat met $_GET. Deze variabele wordt gevuld als je een form invult met de method=GET.
<form action="/action_page.php" method="get">
<input type="text" id="name" name="name">
Maar deze code zorgt ervoor dat de parameters via de URL (link, web adres) worden doorgegeven. Stel in dit voorbeeld voer je de naam Ties in. Dan zie je de URL:
?name=Ties
Maak een PHP pagina die de jouwe naam van de URL leest en deze afdrukt.
Bijvoorbeeld, de URL is:
localhost/phprefresh/opgave1.php?naam=Prince
Op het scherm verschijnt nu:
Welkom Prince!
(let op de uitroepteken achter de naam).
Inleveren
- de php-code in php-01-jouwnaam.php
Opgave 2, forms
We hebben in de vorige opgave met de $_GET gewerkt. Nu gaan we met een form de $_GET variabele vullen.
Je mag ook method="post" gebruiken, maar dat is lastige om te zien wat er dan gebeurt omdat de form variabelen dan niet via de URL worden verstuurd.
Maak een eenvoudig HTML form en vraag de gebruiker twee getallen in te voeren. Dat mag/kan in één veld, maar dat mag ook in twee aparte velden.
Vermenigvuldig (keer) deze twee getallen.
Toon het resultaat op het scherm.
Bijvoorbeeld, stel je hebt 3 en 5 ingevuld dan toon je:
3 x 5 = 15
Inleveren
- php-01-jouwnaam.php - met je PHP code.
- php-01-jouwnaam.png - met je schermafdruk van de hele browser waarin je het resultaat laat zien.
Opgave 3, loops
Hoe zat het ook alweer met al die loops. In deze opgave gaan we twee loops maken een for-loop en een while-loop.
Zoek eerst even hoe het ook weer zat met die loops; hoe werken die ook alweer?
Maak twee loops. Maak een while loop en een for loop en druk de getallen 1 tot en met 20 af.
De output moet er als volgt uit zien:
Zorge ervoor dat de output er precies zo uitziet!
De getallen zijn dus rood en bold en tussen de getallen staat een spatie-streepje-spatie en achter het laatste getal staat niets meer.
Rood en bold? Weet je niet meer hoe dat gaat. Zoek naar de juiste CSS code!
Inleveren
- php-01-jouwnaam.php - met je PHP code.
- php-01-jouwnaam.png - schermafdruk van jouw gehele browser met de juiste output.
Opgave 4, html refresh
Voor deze opgave moet je zelf één en ander opzoeken op internet. Dit hebben we nog niet eerder gehad, maar is wel iets dat soms erg handig kan zijn. We gaan een tijd maken die automatisch loopt.
Zoek eerst uit hoe je de huidige tijd in uren en minuten op het scherm kan afdrukken.
Als je de tijd op het scherm laat zien dan veranderd deze alleen als je de pagina refreshed, probeer maar!
Er bestaat een zogenaamde HTML meta-tag die er voor zorgt dat je browser de pagina elke x seconden ververst. Zoek uit hoe dit werkt en laat de pagina die de tijd laat zien zichzelf elke 10 seconden verversen.
Controleer of jouw pagina zichzelf elke 10 seconde ververst.
Dit kan handig zijn als je een CRUD hebt gemaakt en je wilt dat de (Read) pagina zich elke paar minute ververst.
Inleveren
- de php code in php-04-jouwnaam.php
Functies
Functies hebben soms één of meer parameters en kunnen een ding returnen.
Voorbeeld
<?php
function maalTwee($getal) {
$uitkomst = $getal * 2;
return $uitkomst;
}
echo maalTwee(4);
echo "<br>";
echo maalTwee(24);
echo "<br>";
Op regel 8 en 9 testen we de functie maalTwee() en we zien dat er 8 en 48 wordt afgedrukt.
In de volgende opgaven wordt telkens gevraagd om een functie te maken en om testen uit te voeren.
In dit voorbeeld hebben we dus twee testen uitgevoerd.
Opgave 1
Maak een functie die als input een getal krijgt en dat als een 'net' Euro getal terug geeft. In onderstaand schema staat wat de functie moet doen.
Test |
Uitkomst |
echo netEuro(12); |
€ 12.00 |
echo netEuro(12.5); |
€ 12.50 |
echo netEuro(12.6666); |
€ 12.67 |
Bij elk bedrag wordt dus afgerond op twee decimalen (centen) en er wordt een euro getal afgedrukt voor het bedrag.
Maak de functie netEuro en test (tenmiste) met de waarden zoals die hierboven zijn gegeven.
Inleveren
- php-01-jouwnaam.php - met je PHP code.
- php-01-jouwnaam.png - schermafdruk van jouw gehele browser met de juiste output.
Opgave 2
Kijk naar het filmpje: https://www.youtube.com/watch?v=INHM0S_8GHA |
En maak daarna een functie onvoldoendes($PHPCijfers);
die alle onvoldoendes afdrukt uit het onderstaande array.
$PHPCijfers=[4,5,4,5,6,6,5,8,7,6,4,8];
Dus de output van de functie wordt:
4,5,4,5,5,4
Test |
Uitkomst |
echo onvoldoendes([6,6,7]); |
|
echo onvoldoendes([6,3,6,7]); | 3 |
echo onvoldoendes($PHPCijfers); | 4,5,4,5,5,4 |
Maak de functie en test met tenminste de drie gegeven test cases.
Je code ziet er dus ongeveer zo uit:
function onvoldoendes($array) {
...
...
...
}
echo onvoldoendes([6,6,7]);
echo onvoldoendes([6,3,6,7]);
echo onvoldoendes($PHPCijfers);
Op de plaats van de puntjes maak je jouw functie af.
Inleveren
- de php code in php-04-jouwnaam.php
Opgave 3
Maak een PHP programmaatje dat afhankelijk van de tijd een boodschap afdrukt.
- Het uur is kleiner dan 12: "Goedemorgen".
- Het uur is 12 uur of groter én kleiner dan 18: "Goedemiddag".
- Het uur is groter dan 18: "Goedenavond".
Er is een PHP een functie om de huidige tijd te bepalen. Je hoeft alleen maar te kijken naar het uur. Zoek zelf uit hoe dat werkt.
Zet je code in een functie en noem die begroeting("Charles").
Je heeft één parameter aan in de functie, de parameter (de naam) wordt achter de begroeting gezet en de complete begroeting wordt door de functie in een return terug gegeven.
Dus bijvoorbeeld, het is 4 uur 's middags en plaatst de volgende code:
Test |
Uitkomst |
echo begroeting("Vasco"); |
Goedemidag Vasco |
echo begroeting("Jesse"); | Goedemidag Jesse |
Maak een functie en test tenminste met de bovenstaande twee test cases.
Je code ziet er dus ongeveer zo uit:
function begroeting($naam) {
...
...
...
}
echo begroeting("Vasco");
echo onvoldoendes("Jesse");
Inleveren
- php-01-jouwnaam.php - met je PHP code.
- php-01-jouwnaam.png - schermafdruk van jouw gehele browser met de juiste output.
Opgave 4
Je gaat een functie maken die alle getallen uit een array die groter zijn dan 10 optelt.
Neem bijvoorbeeld dit array.
$array = [11,11,5,2,12,6,7,8,1,10,9];
Er zijn drie getallen groter dan 10. Dat zijn 11, 11 en 12. Opgeteld is dat 34. De functie geeft dus 34 terug.
Noem de functie telGroteGetallen(array)
Test |
Uitkomst |
echo telGroteGetallen( [10,20,20] ); |
40 |
echo telGroteGetallen( [9, 10, 11] ); |
11 |
echo telGroteGetallen($array); |
34 |
De $array in de laatste test heeft de waarden zoals in het voorbeeld is gegeven.
Inleveren
- php-01-jouwnaam.php - met je PHP code.
Opgave 5
Je gaat een functie maken die alle woorden telt die minder dan vier letters hebben.
Neem bijvoorbeeld deze string.
$string = "Voor de vormgeving is het handig om te weten hoe het eruit komt te zien voordat je daadwerkelijk tekst gaat plaatsen.";
De string heeft 9 woorden kleiner dan vier letters, tel maar na!
Hoo doe je dit in PHP?
- Zet deze string om in een array. Tip: maak gebruik van de PHP-functie explode
- Maak een variabele teller en zet die op 0 (je hebt immers nog 0 woorden gevonden die kleiner zijn dan vier letters).
- Loop met een foreach loop door het array.
- Maak een if in de loop en test of het woord minder dan vier karakters heeft.
- Als de if waar is dan hoog je een teller op.
- Aan het einde van de loop heb je in je teller het aantal woorden dat kleiner is dan vier. Return deze waarde
Noem nu een functie kleineWoorden(string) die de string als parameter mee krijgt en die als output het aantal woorden kleiner dan vier letter terug geeft.
Test |
Uitkomst |
echo kleineWoorden("dit is een voorbeeld"); |
3 |
echo kleineWoorden("a b c d"); | 4 |
echo kleineWoorden("abcd"); |
0 |
echo kleineWoorden($string); | 9 |
De $string in de laatste test is dus de string zoals gegeven in het voorbeeld. Test je code met tenminste de 4 gegeven tests
Inleveren
- php-01-jouwnaam.php - met je PHP cod