Operatoren

Rekenkundige operatoren

Met rekenkundige operatoren kun je rekenkundige bewerkingen op numeriek waardes laten uitvoeren.

bewerking operator voorbeeld resultaat
optellen + $x + $y de som van $x en $y
aftrekken - $x - $y het verschil tussen $x en $y
vermenigvuldigen * $x * $y het product van $x en $y
delen / $x / $y $x gedeeld door $y
modulo % $x % $y de rest van de deling van $x door $y
machtsverheffen ** $x ** $y $x tot de macht $y

Toewijzingsoperatoren

Met toewijzingsoperatoren kan een waarde aan een variabele worden toegekend.

toewijzing gelijk aan omschrijving
$x = $y hierbij wordt de waarde rechts van de operator toegekend aan de variabele links
$x += $y $x = $x + $y hierbij wordt de waarde rechts van de operator opgeteld bij de waarde van de variabele links
$x -= $y $x = $x - $y hierbij wordt de waarde rechts van de operator afgetrokken van de waarde van de variabele links
$x *= $y $x = $x * $y hierbij wordt de waarde van de variabele links vermenigvuldigd met de waarde rechts van de operator
$x /= $y $x = $x / $y hierbij wordt de waarde van de variabele links gedeeld door de waarde rechts van de operator
$x %= $y $x = $x % $y hierbij wordt de waarde van de variabele links gelijkgesteld aan de rest van de deling tussen deze waarde en de waarde rechts van de operator

Verhogings- en verlagingsoperatoren

Met verhogings- en verlagingsoperatoren kan de waarde van een variabele met 1 worden verhoogd dan wel verlaagd.

operator gelijk aan omschrijving
$x++ $x = $x + 1 hierbij wordt de waarde van de variabele links met 1 verhoogd
$x-- $x = $x - 1 hierbij wordt de waarde van de variabele links met 1 verlaagd

Er bestaat ook een notatie, waarbij de variabele wordt voorafgegaan door de verhogings- of verlagingsoperator (++$x en --$x). Het effect van deze notatie is voor wat wij ermee doen hetzelfde.

Vergelijkingsoperatoren

Met vergelijkingsoperatoren kunnen twee waardes met elkaar vergeleken worden.

vergelijking operator voorbeeld resultaat
gelijk aan == $x == $y levert waar op wanneer de waarden van $x en $y aan elkaar gelijk zijn
identiek aan === $x === $y levert waar op wanneer de waarden van $x en $y aan elkaar gelijk zijn én van hetzelfde type zijn *)
niet gelijk aan != $x != $y levert waar op wanneer de waarden van $x en $y niet aan elkaar gelijk zijn
,, <> $x <> $y ,,
niet identiek !== $x !== $y levert waar op wanneer de waarden van $x en $y niet aan elkaar gelijk zijn óf niet van hetzelfde type zijn *)
groter dan > $x > $y levert waar op wanneer de waarde van $x groter is dan de waarde van $y
groter of gelijk aan >= $x >= $y levert waar op wanneer de waarde van $x groter is dan of gelijk is aan de waarde van $y
kleiner dan < $x < $y levert waar op wanneer de waarde van $x kleiner is dan de waarde van $y
kleiner of gelijk aan <= $x <= $y levert waar op wanneer de waarde van $x kleiner is dan of gelijk is aan de waarde van $y
spaceship <=> $x <=> $y levert 0 op wanneer de waarde van $x gelijk is aan de waarde van $y, 1 wanneer de waarde van $x groter is of -1 wanneer de waarde van $x kleiner is

Het getal 5 en de tekenreeks "5" hebben dezelfde waarde, namelijk 5, maar zijn niet van hetzelfde (gegevens)type. Binair worden deze ook anders in het geheugen opgeslagen.

Concatenatie operatoren

In PHP zijn er twee speciale operatoren voor het concateneren van tekenreeksen (tekst aan elkaar plakken).

operator voorbeeld omschrijving
. $txt1 . $txt2 plakt de waardes van $txt1 en $txt2 aan elkaar (concatenatie)
.= $txt1 .= $txt2 voegt de waarde van $txt2 achter aan de waarde van $txt1 toe

Logische operatoren

Met logische operatoren kunnen verschillende voorwaarden (of booleaanse waarden) worden gecombineerd.

combinatie operator voorbeeld resultaat
en and $x and $y levert waar op wanneer zowel $x als $y waar zijn
,, && $x && $y ,,
of or $x or $y levert waar op wanneer $x of $y waar is (of beiden)
,, || $x || $y ,,
exclusief xor $x xor $y levert enkel waar op wanneer één van de twee ($x of $y) waar is, maar niet allebei
niet ! !$x levert waar op wanneer $x niet waar is en andersom

Bitsgewijze operatoren

Met bitsgewijze operatoren kunnen specifieke bits binnen byte (of reeks bytes) geëvalueerd of gemanipuleerd worden.

bewerking operator voorbeeld resultaat
en & $x & $y levert een waarde op waarbij alle bits 1 worden wanneer deze in zowel $x als $y 1 zijn
of | $x | $y levert een waarde op waarbij alle bits 1 worden wanneer deze in $x of $y 1 is (of beide)
exclusief ^ $x ^ $y levert een waarde op waarbij alle bits 1 worden wanneer deze in één van de twee ($x of $y) 1 is, maar niet allebei
niet ~ ~$x levert een waarde op waarbij alle bits 1 worden die in $x 0 zijn en andersom
shift links << $x << $y levert een waarde op waarbij alle bits van $x $y stappen naar links zijn verschoven (iedere stap betekent "vermenigvuldigen met twee")
shift rechts >> $x >> $y levert een waarde op waarbij alle bits van $x $y stappen naar rechts zijn verschoven (iedere stap betekent "delen door twee")

Bitsgewijze toewijzingsoperatoren

Met bitsgewijze toewijzingsoperatoren kan een waarde aan een variabele worden toegekend.

toewijzing gelijk aan omschrijving
$x &= $y $x = $x & $y hierbij worden alle bits in de variabele links 1 wanneer deze in zowel de variabele links als de waarde rechts 1 zijn
$x |= $y $x = $x | $y hierbij worden alle bits in de variabele links 1 wanneer deze in of de variabele links of de waarde rechts 1 zijn (of beide)
$x ^= $y $x = $x ^ $y hierbij worden alle bits in de variabele links 1 wanneer deze in de variabele links of de waarde rechts 1 zijn, maar niet allebei
$x <<= $y $x = $x << $y hierbij worden alle bits van de variabele links zoveel stappen naar links verschoven als de waarde rechts
$x >>= $y $x = $x >> $y hierbij worden alle bits van de variabele links zoveel stappen naar rechts verschoven als de waarde rechts

Null coalescing operator

Met de null coalescing operator kan een standaard waarde worden teruggegeven voor het geval een variabele niet bestaat.

operator voorbeeld omschrijving
?? $x ?? $y geeft de waarde van $x terug wanneer deze bestaat en anders die van $y
??= $x ??= $y hierbij wordt de waarde van de variabele links gelijkgesteld aan de waarde rechts, wanneer de variabele links niet bestaat

Deze operator maakt het mogelijk if-statements te omzeilen en zo kortere, maar niet altijd leesbaardere, code te schrijven.

voorbeeld

<?php if (isset($_GET["maximum"])) { $maximum = $_GET["maximum"]; } else { $maximum = 10; } ?>

Dit kan worden afgekort tot:

<?php $maximum = $_GET["maximum"] ?? 10; ?>

Ternaire operator

Met de ternaire operator kan op basis van een voorwaarde een van twee waardes worden teruggegeven.

operator voorbeeld omschrijving
? : $x ? $y : $z geeft de waarde van $y terug wanneer $x waar is en de waarde van $z wanneer $x onwaar is

voorbeeld

Deze operator maakt het mogelijk if-statements te omzeilen en zo kortere, maar niet altijd leesbaardere, code te schrijven.

<?php if ($subtotaal < 20) { $verzendkosten = 4.95; } else { $verzendkosten = 0; } ?>

Dit kan worden afgekort tot:

<?php $verzendkosten = ($subtotaal < 20) ? 4.95 : 0; ?>