Skip to main content

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

Bronnen

W3schools Include

Require

Opdracht

Ga naar W3 schools en zoek op hoe je include en require gebruikt.

Schrijf in de text box in je eigen woorden het antwoord op de volgende 3 items:

  1. Wat is het verschil tussen include en require ?
  2. Wanneer zou je require liever gebruiken dan include?
  3. Geef een praktijkvoorbeeld van wanneer je require zou gebruiken.

Bronnen

W3schools Include

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:

VdagOpdracht.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:

Screenshot 2022-09-26 174318.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:

Screenshot 2022-09-26 192055.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!


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.

<?php

// vul waarden in voor de volgende variabelen
$temperatuur=
$prijsBestelling=  // bepaal de korting
...
...

// bepaal de $bezorgkosten
...
...

 // 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.

Inleveren

  • code php10-jouw-naam.php

Eindopdracht testen - deel 2

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?

Testlog

Maak een testlog . Dit is een kort documentje waarin je telkens als je test de testwaarden (gebruik handige waarden!) noteert en daarbij zet je het eindbedrag neer.

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

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. Je moet dus 10 combinaties kiezen, uitrekenen wat er uit moet komen, opschrijven en dan testen of dat er ook uit komt.

Inleveren
  • testlog test10-jouw-naam.pdf (gebruik "save as" in MS Word en kies PDF als bestands type)

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.