Gelijkwaardig versus identiek
In PHP bestaan drie operators
voor het woordje “is”: =, == en
===. Maar wanneer gebruik je nu welke?
= gebruik je om een waarde op te slaan in een variabele (ook wel het “toekennen” van een waarde aan een variabele):
$country = "Atlantis";
$location = "unknown";
Wil je weten of een variabele een bepaalde waarde heeft? Dan ben je aan het vergelijken.
Allereerst, knoop dit in je brein bij het vergelijken van variabelen:
gebruik === tenzij je een goede reden hebt om == te gebruiken.
Want: wat verwacht jij dat bij onderstaande code op het scherm getoond wordt?
$a = 1;
$b = True;
if ($a == $b) {
echo "Same";
} else {
echo "Different";
}
Kennelijk hebben 1 en True dus dezelfde waarde. Toch zijn ze niet identiek. Je bent een integer met een boolean aan het vergelijken. Appels vergelijk je toch ook niet met peren?
Eigenlijk gaat deze vergelijking alleen betrouwbaar goed als beide kanten van de vergelijking hetzelfde datatype hebben.
Probeer eens:
In de meeste gevallen wil je weten of twee variabelen identiek zijn. Variabelen zijn identiek als ze een gelijke waarde EN een gelijk datatype hebben. Daar gebruik je === voor.
$a = 1;
$b = True;
if ($a === $b) {
echo "Same";
} else {
echo "Different";
}
Wat toont bovenstaande code op het scherm?
Nogmaals: gebruik === tenzij je een goede reden hebt om == te gebruiken.
Soms wil je niet weten of iets gelijk is aan, maar juist of iets ongelijk is aan …
Zowel === als == kun je ook “omdraaien” met: ! (!== en !=):
// als userId niet 1 is, stop het programma.
if ($userId !== 1) {
exit();
}
De officiële documentatie mbt vergelijkingsoperators (comparison operators) vind je op:
https://www.php.net/manual/en/language.operators.comparison.php