Door
Marel Vissers
op 08-04-2020 09:46
gewijzigd op 08-04-2020 13:39
1.589 views
hallo allemaal.
Ik ben een beginnende ICT student en we hebben als één van de vakken Programmeren.
We zijn nu begonnen met PHP en ik had een vraagje.
We hebben namelijk als opdracht optellen, delen en vermenigvuldigen.
ik loop nu best vast met het combineren van deze 3, we moeten namelijk een getal optellen en die vermenigvuldigen bij een getal.
is er iemand die snapt hoe je dit samen kunt combineren?
Een functienaam kan in ieder geval geen spaties bevatten.
De echo voor de laatste functie klopt waarschijnlijk niet, omdat je probeert te vermenigvuldigen in een string, waarschijnlijk ontbreken daar nog een aantal quotes.
Mogelijk krijg je hier foutmeldingen over / waarschuwing van vanuit PHP zelf, misschien ook niet. Wellicht loont het de moeite om het melden + weergeven van foutmeldingen aan te zetten en te leren de foutmeldingen te interpreteren. Waarschijnlijk is dat (leren debuggen) de beste manier om te leren programmeren.
even los van het issue dat 5 + 4 * 3 = 60
maar (5 + 4) * 3 = 27.
Dus de vraag is even of je 60 of 27 wilde zien....
---
je maakt nu een paar functies voor een heel simpel probleem. Begrijp ik, want dit is een leertraject. Maar laten we eens aannemen dat die functie "optellen" iets veel moeilijkers doet: Hij doet 5 query's in verschillende databases; haalt de actuele zonnestand op in Sidney en de watertemperatuur bij Aruba.
Wil je dan bij de bewerking "optellen en vermenigvuldigen" wederom die hele actie opnieuw beschrijven? En wat als het straks om de temperatuur bij Bonaire gaat ipv Aruba? Dan moet je dat op meer plekken aanpassen.
en nu zie je direct waarom je functie niet 2 dingen moet doen: niet rekenen EN naar het scherm echo-en.
Je wilt pas achteraf beslissen wat er met de uitkomst gedaan moet worden:
@Ivo, maar wat jij daar voorstelt met de functie optellen_en_vermenigvuldigen() is toch niet conform de standaard operator precedence?
Je neemt $a en $b samen, terwijl $b en $c vermenigvuldigd zouden moeten worden?
Niet in PHP, en ook niet volgens de standaard wiskunderegels?
Zelfs als je geen haken gebruikt om expliciet aan te geven wat je bedoelt, is het $a + ($b * $c), en niet, wat in de functie gebeurt, ($a + $b) * $c?
EDIT: de rest van de opmerkingen over het gebruik en de werking van functies in het algemeen ben ik het wel mee eens. Op het moment dat een functie een waarde retourneert kun je altijd nog besluiten om deze op het scherm weer te geven met constructies als echo.
@ivo
dankjewel voor je goede uitleg!
vraagje: hoe je doe het als je het andersom doet?
als je eerst vermenigvuldigd doet en daarna plus?
is dat heel anders of totaal niet??