Programmeren in PHP/Rekenen
Het komt nogal eens voor dat je berekeningen uit moet voeren in PHP. Hieronder volgt een uitleg over het uitvoeren van enkele simpele berekeningen. Moeilijkere berekeningen komen later aan bod.
Optellen
[bewerken]PHP-code:
<?php
//Tel 8 bij 10 op en druk het resultaat af
echo 10 + 8;
?>
Aftrekken
[bewerken]PHP-code:
<?php
/*Net als optellen gebruik je hetzelfde symbool voor aftrekken als je bij wiskunde doet
Trek 300 van 500 af en print het resultaat
*/
echo 500 - 300;
?>
Vermenigvuldigen
[bewerken]PHP-code:
<?php
//Vermenigvuldig 2 met 23 en druk het resultaat af
echo 2 * 23;
?>
Delen
[bewerken]PHP-code:
<?php
//Deel 12 door 3
echo 12 / 3;
?>
Modulo
[bewerken]Het kan soms voorkomen dat je iets in een loop wilt laten gebeuren om de x keer, daar is de modulo-operator voor uitgevonden. De modulo van een getal met een ander getal is de rest van een (staart)deling (9%2 = 1, want 9/2 = 4 met 1 rest). Voor een modulo gebruik je de %-operator als volgt:
PHP-code:
<?php
echo 4 % 2; // geeft 0; want 4 / 2 = 2 en er is geen rest
echo 5 % 2; // geeft 1, want 5 / 2 = 2 en er is een rest van 1
echo 15 % 17; // geeft 15, want 15 / 17 = 0 en er is een rest van 15
?>
Een veelgebruikte toepassing van de modulo is het bepalen of een getal even of oneven is. het eenvoudigste gebruik is een simpele functie:
PHP-code:
<?php
function isEven($nr) {
return ($nr % 2) ? false : true;
}
// Voorbeeld
$getal = 123;
if(isEven($getal)) {
echo '<br />' . $getal . ' is even!';
// doe iets
}
else {
echo '<br />' . $getal . ' is oneven!';
// doe iets anders!
}
?>
Increment en decrement-operatoren
[bewerken]De operatoren ++ en -- heten de 'increment operators'. Ze verhogen (incrementeren) of verlagen (decrementeren) een getal met 1. Je kunt ze op 2 manieren toepassen. De eerste manier heet 'postfix':
PHP-code:
<?php
$a = 100;
echo $a++;
?>
Dit scriptje geeft gek genoeg '100' als uitvoer. Vreemd, zou je zeggen, maar het wordt nog vreemder als je dit doet:
PHP-code:
<?php
$a = 100;
echo $a++;
echo $a;
?>
De tweede 'echo' zal nu wel '101' uitspugen! $a++ betekent niet zomaar verhogen, maar het betekent eigenlijk 'verhoog pas nadat je de waarde van $a hebt doorgegeven'. Klinkt nogal krom eigenlijk, maar het wordt wellicht duidelijker als we de 'prefix' operator erbij pakken. 'Prefix' wil zeggen dat de ++ niet achter de variabele $a staat, maar ervoor. Bij prefix wordt wel eerst verhoogd en dan pas de waarde van $a doorgegeven:
PHP-code:
<?php
$a = 100;
echo $a++; /* 100 */
echo $a; /* 101 */
$a = 100;
echo ++$a; /* 101 */
echo $a; /* 101 */
?>
Als je liever geen rekening wil houden met het verschil tussen 'postfix' en 'prefix', dan kun je uiteraard gewoon je code spliten over 2 regels:
PHP-code:
<?php
$a = 100;
$a++;
echo $a; /* 101 */
?>
Dat is in sommige gevallen duidelijker. Het is sowieso in sommige gevallen fijn om niet afhankelijk te zijn van de 'voorrangsregels' voor operators.
Om te verhogen of verlagen in PHP heb je de volgende operatoren:
Operand | Betekenis |
++ | Verhoog variabele met 1 |
-- | Verlaag variabele met 1 |
+= | Verhoog variabele met een bepaalde waarde, bijvoorbeeld bij $a += 5 wordt er 5 opgeteld bij $a |
-= | Verlaag variabele met een bepaalde waarde, bijvoorbeeld bij $b -= 2 wordt er van $b 2 afgetrokken |
*= | Vermenigvuldig variabele met een bepaalde waarde, dus $b *= 3, is eigenlijk $b = $b * 3 |
/= | Deel variabele met een bepaalde waarde, dus $b /= 3, is eigenlijk $b = $b / 3 |
Machten
[bewerken]Rekenen met machten doe je door de functie pow() (je kan niet zeggen 5^3 omdat ^ de bitwise XOR-operator is, maar dat terzijde.)
PHP-code:
<?php
echo pow(5,3);
?>
Wortel
[bewerken]PHP heeft een functie om wortels uit te rekenen, maar daar kun je alleen vierkantswortels mee berekenen, het berekenen van een vierkantswortel, oftwel de tweedemachts wortel, gaat als volgt
PHP-code:
<?php
//dit geeft als resultaat: 7 want 7*7=49
echo sqrt(49);
?>
Wortels met een ander grondtal kan je ook uitrekenen, mits een beetje wiskundige kennis. Een wortel is eigenlijk ook een machtsverheffing, maar dan met de inverse van de exponent. Een vierkantwortel kun je dus ook zo schrijven:
PHP-code:
<?php
echo pow(5, 1/2);
?>
Zoals je ziet bereken je de inverse door 1 door het getal te delen. (Oftewel: teller en noemer van de breuk om te draaien.) Om een wortel met een ander grondtal te nemen, bijvoorbeeld 6, doe je dus het volgende
PHP-code:
<?php
echo pow(5, 1/6);
?>
Andere wiskundige functies
[bewerken]Een aantal veelgebruikte functies in PHP zijn round($nummer,$precisie), abs($nummer), floor($nummer) en ceil($nummer). Hieronder zie je hoe ze werken in het kort:
PHP-code:
<?php
$afgerond = round(133.756859402, 2); /* $afgerond is nu 133.76 */
$abs = abs(-1337); /* $abs is nu 1337 */
$floor = floor(2.58694); /* $floor is nu 2 */
$ceil = ceil(2.35125); /* $ceil is nu 3 */
?>
Verder zijn sin($nummer), cos($nummer), tan($nummer), exp($nummer), rad2deg($nummer), sinh($nummer), cosh($nummer), tanh($nummer), log($nummer) en nog veel meer wiskundige functies beschikbaar.