# PHP1 python reformatterCanvas.py 18661 56422 https://www.roc.ovh/books/2024/page/php1 ## mijnNaam en mijnLeeftijd #### *Wat ga je leren?*
Code lezen en begrijpen wat er gebeurt. Hiervoor krijg je code en worden er vragen over deze code gesteld. Je kunt alles gewoon *zelf* uitproberen, ga niet gokken, maar controleer je antwoorden door het zelf te proberen! Als tweede opdracht in deze les krijg je een stukje code met twee foutjes. Kun jij deze foutjes vinden en oplossen?
We beginnen met deze foutloze code: ``` 1 ``` Kijk naar de code hierboven en probeer te *voorspellen* wat de output is. Wat er dus wordt afgedrukt. Tip: als je de waarde van een variabele wil veranderen dan kun je de waarde gewoon overschrijven. Je hoeft de variabele niet eerst leeg te maken of.zo. Maak een nieuw bestand in c:\\xampp\\htdocs\\phplevel1-jouw-naam Noem het bestand php04-jouw-naam.php Zet de code erin en kijk of er inderdaad gebeurt wat jij had voorspelt. Open MS Word, kopieer de vraag en tik daaronder jouw antwoord. Test aan de hand van code of jouw antwoord klopt.
**1: Stel je drukt op regel 5 de waarde van $mijnNaam af, wat is dan de waarde?** Antwoord: .... **2: Stel je drukt op regel 8 de waarde van $mijnNaam af, wat is dan de waarde?** Antwoord: .... **3: Stel je drukt op regel 5 de waarde van $mijnLeeftijd af, wat is dan de waarde?** Antwoord: .... **4: Stel dat je regel 4 twee maal uitvoert. Je kopieert dus regel 4 naar regel 5, zodat deze twee maal voorkomt. Wat is nu de waarde van $mijnLeeftijd vlak na regel 5?** Antwoord: .... **5: Stel dat je regel 7 twee maal uitvoert. Je kopieert dus regel 7 naar regel 8, zodat deze twee maal voorkomt. Wat is nu de waarde van $mijnLeeftijd vlak na regel 8?** Antwoord: .... **6: Leg bij opdracht 5 in eigen woorden uit wat er gebeurt.** Antwoord: ....
Sla het MS Word bestand op in PDF formaat met de naam PHP04-jouw-naam.pdf en lever dat in. \-- ## Fouten vinden Als programmeur maak je code, maar een veel belangrijker onderdeel van je werk wordt het opsporen en verbeteren van fouten. Soms zijn dat fouten die anderen hebben gemaakt, maar vaak zijn het ook fouten die je zelf hebt gemaakt. Het verbeteren van fouten wordt ook wel *debuggen* genoemd. Maak een bestand PHP05-jouw-naam.php (let op dat dit bestand een PHP bestand is). Kopieer de volgende code naar PHP05-jouw-naam.php en test de code uit. ``` ``` De programmeur heeft op 2 regels foutjes gemaakt. Lees de foutmelding en probeer de twee fouten op te lossen. Verbeter de code, test het en als alles goed werkt lever je dit bestand ook in. ### Inleveren 1. PHP05-jouw-naam.php , hierin staat de *verbeterde* en *getest* code. ## Strings 1

Lees de [ theorie ](https://www.roc.ovh/link/815#bkmrk-strings)

### Opdracht ``` 01 ``` Test de code. Regel 5 en 6 doen beide hetzelfde, althans hetzelfde wordt afgedrukt. Toch is er verschil. Hoe moet je de code bijvoorbeeld aanpassen, zodat de voornaam 'Ali' wordt? Leg in eigen woorden uit wat het verschil is tussen regel 5 en regel 6. Tip1: verander regel 2 en geef $voornaam een andere waarde, bijvoorbeeld jouw voornaam. Wat gebeurt er? Zie je nu het verschil? Tip2: denk aan wat een variabele is, en waar wordt die gebruikt? Je kunt als template het volgende gebruiken. ``` Op regel 5 wordt ..... afgedrukt omdat ......

Op regel 6 wordt ..... afgedrukt omdat ....... ``` ##### Inleveren 1. jouw uitleg (in text veld) ## Strings 2 ### Opdracht Maak een nieuw bestand php05b-jouw-naam.php ``` ``` Gebruik dit laatste voorbeeld en verander de voor- en achternaam in je eigen naam en verander de code zodat het volgende wordt afgedrukt. ``` Welkom jouw-voornaam jouw achternaam! Ik ben blij om je te zien! ``` Gebruik de variabelen $voornaam en $achternaam. Geef de variabelen de juisten waarden. Dus $voornaam wordt jouw voornaam en $achternaam krijgt jouw achternaam. Maak gebruik van string concatenation (aan elkaar plakken van strings). De output, de tekst in je browser bestaat uit 3 regels. Gebruik de string "<br>" om een regel over slaan. `` Test je code uit! ##### Inleveren 1. screenshot waarin je laat zien dat je code werkt. 2. jouw code php05b-jouw-naam.php. ## Strings 3 ### Opdracht Bedenk nu zelf 2 variabelen, geef deze een waarde en maak een juiste Nederlandse zin met deze twee variabelen. Voorbeeld: ``` $huisdier="hond"; $kleur="zwart"; echo "Mijn ".$huisdier." is ".$kleur; ``` Dus bedenk een **eigen** voorbeeld met eigen variabelen. Dit zijn de regels: 1. Bedenk minimaal 2 eigen *logische* variabele namen. 2. Geef deze variabele een *logische* waarde. 3. Druk een zin af. Gebruik string concatenation (aan elkaar plakken van strings) en druk een juiste Nederlandse zin af. ##### Inleveren 1. screenshot waarin je laat zien dat je code werkt. 2. jouw code php05c-jouw-naam.php. ## Getallen 1

Lees eerst de [ theorie ](https://www.roc.ovh/link/815#bkmrk-getallen) .

### Opdracht Test de volgende code. ``` 01 $a=20; 02 $b=8; 03 04 echo "$a - $b"; 05 echo $a - $b; ``` Beschrijf wat er wordt afgedrukt op regel 4 en wat er wordt afgedrukt op regel 5. Leg in jouw eigen woorden uit waarom er op regel 4 wat anders wordt afgedrukt als op regel 5. Kom je er niet uit? Maak dan de volgende twee zinnen af. Op regel 4 wordt ..... afgedrukt omdat ...... Op regel 5 wordt ..... afgedrukt omdat ...... (hint: denk aan variabele en strings) ### Inleveren Uitleg in online text ## Getallen 2 ### Opdracht Maak het bestand php06-jouw-naam.php. Maak de variabele $mijnLeeftijd en geef de variabele de waarde die overeenkomt met je leeftijd. Maak een variabele $vorigJaar en bereken met de variabele $mijnLeeftijd hoe oud je vorige jaar was. Maak een variabele $overZesJaar en bereken met de variabele $mijnLeeftijd hoe oud je over zes jaar bent. Druk de uitkomsten af met de volgende code ``` // maak hier je eigen code // // echo "Ik ben $mijnLeeftijd jaar"; echo "
"; echo "Vorig jaar was ik $vorigJaar oud"; echo "
"; echo "Over 6 jaar ben ik $overZesJaar oud"; ``` ### *Test je code!* ### Inleveren (2 bestanden) \* php06-jouw-naam.php \* schermafdruk van je hele browser scherm, URL is zichtbaar, met output van je code ## Conditions 1

Lees eerst de [ theorie. ](https://www.roc.ovh/link/815#bkmrk-condition-if-then-el)

### Opdracht Maak een nieuw bestand en noem dat php107a-jouw-naam.php Maak de onderstaande code af op regel 4 (vervang de puntjes). Plaats daar een vergelijking: controleer of de waarde van $variabele1 en $variabele2 gelijk zijn. ``` $variabele1 = 10; $variabele2 = 10; if(.......) { echo "De twee waarden zijn gelijk"; } ```
#### Inleveren
1. php07a-jouw-naam.php
### Bronnen [ Jaap vd Veen - statements ](https://phpbasis.jaapvdveen.nl/basiscursus-php/les-2-inleiding-statements/) [ W3 Schools - operators ](https://www.w3schools.com/php/php_operators.asp) [ W3 Schools - if else ](https://www.w3schools.com/php/php_if_else.asp)
## Conditions 2
### Opdracht Maak een nieuw bestand en noem dat php107b-jouw-naam.php Maak de onderstaande code af door de puntjes op regel 4 te vervangen door een vergelijking te maken. Controleer of de waarde van $variabele1 en $variabele2 ongelijk zijn. ``` $variabele1 = 10; $variabele2 = 11; if(.......) { echo "De twee waarden zijn ongelijk"; } ``` #### Inleveren 1. php07b-jouw-naam.php
## Bronnen [ Jaap vd Veen - statements ](https://phpbasis.jaapvdveen.nl/basiscursus-php/les-2-inleiding-statements/) [ W3 Schools - operators ](https://www.w3schools.com/php/php_operators.asp) [ W3 Schools - if else ](https://www.w3schools.com/php/php_if_else.asp)
## Conditions 3
### Opdracht
Maak een nieuw bestand en noem dat php107c-jouw-naam.php Maak de onderstaande code af door de puntjes op regel 4, 6 en 8 te vervangen. Maak een if-then-else constructie en zorg ervoor dat de juiste tekst op het scherm wordt weergegegeven. ``` $variabele1 = 10; $variabele2 = 10; .... echo "De twee waarden zijn gelijk"; .... echo "De twee waarden zijn ongelijk"; .... ``` #### Inleveren 1. php107c-jouw-naam.php ## Bronnen [ Jaap vd Veen - statements ](https://phpbasis.jaapvdveen.nl/basiscursus-php/les-2-inleiding-statements/) [ W3 Schools - operators ](https://www.w3schools.com/php/php_operators.asp) [ W3 Schools - if else ](https://www.w3schools.com/php/php_if_else.asp)
## Include

Lees eerst de [ theorie. ](https://www.roc.ovh/link/815#bkmrk-html%2C-php-en-include)

###
Maak een eigen footer.php en zet daarin een eigen footer. Noem het bestand php108a-footer-jouw-naam.php Maak een eenvoudige webpagina php8a-jouw-naam.php Maak een titel <h2> *Mijn Webpagina* . Zet daaronder *welkom < jouw naam>* Gebruik tenminste een <body> en <html> tag [ ![image-1654093629221.png](https://www.roc.ovh/uploads/images/gallery/2022-06/scaled-1680-/image-1654093629221.png) ](https://www.roc.ovh/uploads/images/gallery/2022-06/image-1654093629221.png) Geef de variabele $footer de naam van het bestand waarin jouw footer staat en include de footer door gebruik te maken van de variabele $footer en het php statement include. Test of je code werkt voordat je het inlevert! ##### Inleveren - php8a-jouw-naam.php - php108a-footer-jouw-naam.php ## Logische operators 1

Lees eerst de [ theorie. ](https://www.roc.ovh/link/815#bkmrk-logical-operators-en)

Neem onderstaande code over: ``` "; echo "dagvrije dagadvies"; foreach($werkdagVanDeWeek as $dag) {   foreach($vrijeDag as $vd) {     echo "";     echo "$dag$vd";   // je moet vroeg opstaan op vrijdagen als het geen vrije dag is if ( $dag .. .... && $vd.. .... ) {     echo "07:00 uur op staan";     } else {       echo "uitslapen";     }     echo "";   } } echo ""; ``` Maak de conditie in het if-statement af door op de puntjes de code aan te vullen. Je moet alleen vroeg opstaan op vrijdagen als het geen vrije dag is. De output van de code moet er dus als volgt uit zien: ![Uitslapen1.png](https://talnet.instructure.com/courses/18661/files/4182545/preview?verifier=uaM0X2W1rJKrTmk7Oy8Z8z3fKm1ll1OvnutwfA4Q) ### Inleveren (2 bestanden) \* Screenshot van de output inclusief de URL \* php01-conditions01-jouw-naam.php ## Logische operators 2 Neem onderstaande code over: ```
$dagVanDeWeek=[ 'ma','di','wo','do','vr','za','zo' ];

$vrijeDag=[ 'ja', 'nee'];



echo "";

echo "";



foreach($dagVanDeWeek as $dag) {

  foreach($vrijeDag as $vd) {



    echo "";

    echo "";

  }

}

echo "
dagvrij dagadvies
$dag$vd";



  // je moet vroeg opstaan op elke doordeweekse dag (maandag, dinsdag, woensdag, donderdag of vrijdag)

if ( .... .. .... .. .... .. .... .. .... ) {

      echo "06:30 uur op staan";

    } else {

      echo "uitslapen";

    }



    echo "
";



``` Maak de conditie in het if-statement af door op de puntjes de code aan te vullen. Je moet vroeg opstaan op elke doordeweekse dag (maandag, dinsdag, woensdag, donderdag of vrijdag). De output van de code moet er dus als volgt uit zien: ![opg2.png](https://talnet.instructure.com/courses/18661/files/4186204/preview?verifier=2aWt0nJggOYZFQgfy5bP3OMvM8lL91ppvOnjnezJ) ### Inleveren 1. Screenshot van de output inclusief de URL. 2. Je code php01-conditions02-jouw-naam.php ## Logische operators 3 Neem onderstaande code over: ```
$dagVanDeWeek=[ 'ma','di','wo','do','vr','za','zo' ];

$vrijeDag=[ 'ja', 'nee'];



echo "";

echo "";



foreach($dagVanDeWeek as $dag) {

  foreach($vrijeDag as $vd) {



    echo "";

    echo "";

  }

}

echo "
dagvrij dagadvies
$dag$vd";



   // je werkt op maandag en dinsdag; je moet dus vroeg opstaan op maandag of dinsdag als het geen vrije dag is.

if ( ......... ) {

      echo "06:30 uur op staan";

    } else {

      echo "uitslapen";

    }



    echo "
";



``` Maak de conditie in het if-statement af door op de puntjes de code aan te vullen. Let op dit is een lastige, controleer je antwoord goed! Kom je er niet uit? Lees dan het stuk over " Logische operatoren en korte broeken " en dan vooral het stukje " haakjes in condities ". **Je moet alleen vroeg opstaan op maandagen als het geen vrije dag is.** De output van de code moet er dus als volgt uit zien: ![table.png](https://talnet.instructure.com/courses/18661/files/4180446/preview?verifier=pfb92vo9LYSgMYU8rMRF8kJAWN1pXYgGOCKi2j2d) Alleen op de maandag en dinsdag die geen vrije dagen zijn, moet je vroeg op staan. ### Inleveren 1. Screenshot van de output inclusief de URL. 2. Je code php01-conditions03-jouw-naam.php ## Eindopdracht coderen - deel 1 #### *Wat ga je leren?* *Met alles wat we hebben geleerd gaan we een PHP programma maken. Let's go!* ### Korting ##### Een webshop geeft zomerse korting op alle artikelen als dit weekend bepaalde zomerse temperaturen worden bereikt. De korting bepaal je in de code aan de hand van de temperatuur.
10%: boven de 21 graden, maar niet boven de 25 graden 15%: boven de 25 graden, maar niet boven de 30 graden 20%: boven de 30 graden
### Bezorgkosten De bezorgkosten zijn standaard **4 euro** per bestelling, maar als de prijs van de bestelling (na zomerse korting) **meer dan 40 euro** is dan zijn de **bezorgkosten 0.** ### Code ``` "; echo "Temperatuur dit weekend: $temperatuur"; echo "
"; echo "Korting: $korting"; echo "
"; echo "Bezorgkosten: $bezorgkosten"; echo "
"; echo "
"; echo "Eindbedrag: ".$prijsBestelling-$korting+$bezorgkosten; ``` Maak de **code** af en zorgen ervoor dat het eindbedrag juist wordt **berekend** . Bepaal eerst de $bezorgkosten op regel 8, dan de korting op regel 12. Het eindbedrag moet uitkomen op 44 euro (geen korting en wel bezorgkosten). ### Inleveren - **code** php10-jouw-naam.php ## Eindopdracht testen - deel 2 ### Inleiding Deze opdracht is wat groter. Lees het goed door. Testen van code is belangrijk en is onderdeel van het Examen Software development. In deze opdracht gaan we software testen aan de hand van een testplan. Dit testplan moet jij (af)maken en uitvoeren. ### Testen In de code die je in deel één hebt gemaakt kun je met verschillende waarden testen. Laten we bijvoorbeeld testen wat er uit komt als de temperatuur 20 is, en de prijs van de bestelling 40. Vul testwaarden in op regel 4 en 5 en test de code. Wat komt er uit jouw code en klopt dat? ### Testsplan Maak een **testplan** . Dit is een kort documentje waarin beschrijft wat je gaat testen. Dit ga je dan uitvoeren en je noteert de uitkomsten. In het test documentje staat *bijvoorbeeld* het volgende:
temperatuurprijsBestellingEindbedragCorrect (ja/nee)
204044ja/nee
204242ja/nee
224241,8ja/nee
301012,5ja/nee
5058ja/nee
### Uitleg De getallen zijn niet willekeurig, maar zijn uitgerekend, bijvoorbeeld op 4 staat: ***temperatuur is 30** en de prijs van de **bestelling is 10** .* Bij een temperatuur van 30 is de **korting 20%** , dus de prijs van de bestelling wordt **8 euro** (10 - 20%). Daar komen **4 euro bezorgkosten** bij, dus wordt de prijs **12 euro** en dat staat in de laatste kolom. Nu ga je testen of je code deze berekening ook goed maakt. Je verandert de waarden van temperatuur en de prijs van de bestelling in de code en kijkt wat er dan uitkomt. Is dat 12? Top dan is de test geslaagd! Vul dan "ja" in bij de laatste kolom. Komt er geen 12 uit jouw code dan is de code niet goed of je berekening is onjuist. Je zult dan de berekening of de code moeten aanpassen. In de laatste kolom moet je ja of nee invullen afhankelijk van het resultaat. Bepaal ***minimaal*** 10 test scenario's. Je hebt er al 5 (hierboven), dus je moet er zelf nog minimaal 5 bij bedenken en uitrekenen. Je moet dus 10 combinaties maken, uitrekenen wat er uit moet komen, opschrijven en dan testen of dat er ook uit komt. ### Kortingen
10%: boven de 21 graden, maar niet boven de 25 graden 15%: boven de 25 graden, maar niet boven de 30 graden 20%: boven de 30 graden
### Bezorgkosten Bezorgkosten zijn **4 euro** voor bedragen tot en met 40 euro. Daarboven zijn de bezorgkosten 0. ### Inleveren - **testlog** test10-jouw-naam.pdf (gebruik "save as" in MS Word en kies PDF als bestandstype) ## PHP Eindtest PHP Eindtest. Je krijgt 5 willekeurige vragen. Je krijgt 6 minuten de tijd om de quiz te maken. Je mag deze test maximaal 6x doen. ## KennisCheck ![](https://www.google.com/imgres?q=kennis%20check&imgurl=https%3A%2F%2Fhetdigitalecokeboek.files.wordpress.com%2F2012%2F02%2Ftestjouwkennis-logo.png&imgrefurl=https%3A%2F%2Fhetdigitalecokeboek.wordpress.com%2Ftest-je-kennis%2F&docid=7UzFneIIBMjPEM&tbnid=CMP0ZLvZilrMJM&vet=12ahUKEwii4PGauvyGAxWRzQIHHeHpBBIQM3oECGMQAA..i&w=326&h=235&hcb=2&ved=2ahUKEwii4PGauvyGAxWRzQIHHeHpBBIQM3oECGMQAA) ![KC.jpg](https://talnet.instructure.com/courses/18661/files/3582307/preview?verifier=LUyb6xvjFk40LSfoGxAGCOdeMDtqmBqUsY1OVMiM) Als je alles hebt gelezen en hebt uitgevoerd dan gaan jullie klassikaal een Kennischeck uitvoeren. - Voer de juiste naam en klas in bij de kennis-check - Zorg ervoor dat je 80% of hoger scoort. ### Inleveren 1. Screenshot van je resultaat.