Maar omdat PHP de gebruiker het datatype niet laat bepalen, is dat vrij globaal, dit werkt bijvoorbeeld ook:
$var1 = 1;
$var2 = true;
if($var1 == $var2) {
return true;
}
// returned ook true!
Dus hier heb je een int (rond getal) die vergeleken wordt met een boolean (true / false) en wordt hetzelfde bevonden, dus php vind 1 hetzelfde als 'true';
Zo zal php dat getal als string: "1" OOK hetzelfde vinden als het getal '1' en de boolean 'true';
Dit kan soms vervelend zijn, dus als je wilt dat de inhoud van een variabele hetzelfde is EN de datatype, moet je 3x = gebruiken, dan is alles wat stricter, zoals in een programmeer taal als java of C++:
$var1 = 1;
$var2 = true;
$var3 = 1;
if($var1 === $var2) {
return true;
// Nu werkt het niet, omdat er 3x '=' staat
}
if($var1 === $var3) {
return true;
Dit werkt weer wel, omdat $var1 en $var3 echt hetzelfde zijn, allebei 'int' en allebei hetzelfde getal
}
Klopt niet echt, dan zou je dus drie keer twee = hebben, ======... Daar heb ik nog nooit van gehoord, of hoort dat bij PHP 6? (zes streepjes.. php zes...)
Maar goed, deze pagina legt het heel duidelijk uit. Het is om data te vergelijken (comparison operator) dus kom je uit op deze: http://nl3.php.net/operators.comparison