Skip to main content

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  <?php
2 
3  $mijnNaam="Random";
4  $mijnLeeftijd=23;
5 
6  $mijnNaam="Foobar";
7  $mijnLeeftijd=$mijnLeeftijd+1;
8  
9   echo "ik heet $mijnNaam en ik ben $mijnLeeftijd jaar oud.";
10
11  ?>

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.

<?php

$mijnNaam = "Random";
$mijnLeeftijdNu = 23;
$mijnLeeftijdVolgendJaar = $mijnLeeftijdNu+1

echo "ik heet $mijnnaam en ik ben $mijnLeeftijd jaar oud, volgend jaar ben ik $mijnLeeftijdVolgendJaar oud.";

?>

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

Opdracht

01 <?php
02 $voornaam="Alexandra";
03 $achternaam="Gaona";
04
05 echo $voornaam." ".$achternaam;
06 echo "Alexandra"." "."Gaono";
07 ?>

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

<?php
$voornaam="Alexandra";
$achternaam="Gaona";
echo $voornaam." ".$achternaam;
echo "Alexandra ".$achternaam;
?>

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 .

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 "<br>";
echo "Vorig jaar was ik $vorigJaar oud";
echo "<br>";
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.

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

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

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
W3 Schools - operators
W3 Schools - if else

Include

Lees eerst de theorie.


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

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.

Neem onderstaande code over:

<?php
$werkdagVanDeWeek=[ 'ma','di','wo','do','vr'];
$vrijeDag=[ 'ja', 'nee'];

echo "<table border=1>";
echo "<tr><th>dag</th><th>vrije dag</th><th>advies</th></tr>";

foreach($werkdagVanDeWeek as $dag) {
  foreach($vrijeDag as $vd) {

    echo "<tr>";
    echo "<td>$dag</td><td>$vd</td><td>";

    // 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 "</td>";
  }
}
echo "</table>";

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

Inleveren (2 bestanden)

* Screenshot van de output inclusief de URL
* php01-conditions01-jouw-naam.php

Logische operators 2

Neem onderstaande code over:

<?php
$dagVanDeWeek=[ 'ma','di','wo','do','vr','za','zo' ];
$vrijeDag=[ 'ja', 'nee'];

echo "<table border=1>";
echo "<tr><th>dag</th><th>vrij dag</th><th>advies</th></tr>";

foreach($dagVanDeWeek as $dag) {
  foreach($vrijeDag as $vd) {

    echo "<tr>";
    echo "<td>$dag</td><td>$vd</td><td>";

  // 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 "</td>";
  }
}
echo "</table>";

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

Inleveren

  1. Screenshot van de output inclusief de URL.
  2. Je code php01-conditions02-jouw-naam.php

Logische operators 3

Neem onderstaande code over:

<?php
$dagVanDeWeek=[ 'ma','di','wo','do','vr','za','zo' ];
$vrijeDag=[ 'ja', 'nee'];

echo "<table border=1>";
echo "<tr><th>dag</th><th>vrij dag</th><th>advies</th></tr>";

foreach($dagVanDeWeek as $dag) {
  foreach($vrijeDag as $vd) {

    echo "<tr>";
    echo "<td>$dag</td><td>$vd</td><td>";

   // 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 "</td>";
  }
}
echo "</table>";

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

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

<?php

// Dit zijn de temperatuur en prijs van de bestelling.
$temperatuur= 20;
$prijsBestelling= 40;

// bepaal de $korting aan de hand van de temperatuur
$korting = 0;
if ( ... ) {
  $korting = 10;
}
if ( ... ) {
  $korting = 15;
}
if ( ... ) {
  $korting = 20;
}

$prijsBestelling = $prijsBestelling - ($prijsBestelling*$korting/100) 

// bepaal de $bezorgkosten aan de hand van de $prijsBestelling if ( ... ) {  ... } else {  ... } // druk resultaat af echo "Bedrag bestelling: $prijsBestelling"; echo "<br>"; echo "Temperatuur dit weekend: $temperatuur"; echo "<br>"; echo "Korting: $korting"; echo "<br>"; echo "Bezorgkosten: $bezorgkosten"; echo "<br>"; echo "<br>"; 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:

temperatuur prijsBestelling Eindbedrag Correct (ja/nee)
20 40 44 ja/nee
20 42 42 ja/nee
22 42 41,8 ja/nee
30 10 12,5 ja/nee
50 5 8 ja/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

KC.jpg

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.