Skip to main content

Calculator+

We gaan een calculator maken met een object. Hierbij zullen we ook een begin maken met het MVC model. Dit model is een standaard voor het ontwikkelen van complexere web sites en wordt ook in Laravel gebruikt. Dit is dus een eerste stapje richting Laravel.

We gaan drie files maken:

form.html
result.php
includes/calc.php

We beginnen met de form.html. Maka een HTML pagina met een form. Het form heeft drie velden plus een submit knop.

We gaan ook een drop down box maken in het form, lees hier hoe dat werkt:

https://www.w3schools.com/html/html_form_elements.asp

Het form in eenvoudige vorm ziet er als volgt uit:

We zetten nu het form in een tabel zodat het er iets fraaier uit ziet. Gebruik hiervoor cellpadding="10"

Het form ziet er op deze manier iets fraaier uit, zorg ervoor dat als je de submit knop in drukt dat je dan de pagina resultaat.php laat zien.

Zet in resultaat.php code zodat je de for- variabellen kun zien, dus je ziet het volgende als (bijvoorbeeld als je op submit dukt):

De output ziet er bijvoorbeeld als volgt uit:

We gaan dit niet netjes maken, we doen dit alleen om te controleren of het form goed werkt en of de variabellen goed worden verstuurd. Gebruik je in het form POST of GET? Zet in het form expliciet welke methode je gebruikt, we kunnen het dan later evetueel nog aanpassen.

Zet in de output ook een link terug naar het form: <a href=......>Back to form</a>

Nu gaan we onze eerste class maken!

We gaan in dit voorbeeld niet op de meest eenvoudigste manier ene programma maken (een calculator in php kun je echt veel eenvoudiger maken), maar we gaan dit op deze manier doen om OOP te leren. Het voorbeeld is eenvoudig maar de manier waarop we het doen is best ingewikkeld.

Ready, voor je eerste PHP OOP ervaring?

We gaan naar de file calc.php en maken daar de class Calc

<?php 

class Calc {
    private $number1;
    private $number2;

    public function setNumber1($number){
        $this->$number1 = $number;
    }

    // maak hier een tweede public method die number2 initialiseerd
    
}
?>

Maak zelf de tweede public function waar nu het commentaar staat. We houden $number1 en $number2, hetgeen betekent dat ze van buiten de class niet beschikbaar zijn. Dit zorgt ervoor dat je als gebruiker van deze class niet precies hoeft te weten hoe alle variabelen heten (dit is een vorm van encapsulation).