Worin unterscheiden sich die Vergleichsoperatoren == (lose Gleichheit) und === (strenge Gleichheit) in PHP?
Hallo zusammen! Ich habe gerade angefangen, PHP zu lernen, und bin auf eine unklare Situation gestoßen. Ich schreibe ein einfaches Skript zur Überprüfung des Alters eines Benutzers, und die Ergebnisse verwirren mich.
Hier ist mein Code:
<?php
$age = "25"; // string
$legal_age = 25; // integer
if ($age == $legal_age) {
echo "Alter stimmt überein (==)"; // dies wird ausgegeben
}
if ($age === $legal_age) {
echo "Alter stimmt überein (===)"; // dies wird NICHT ausgegeben
}
?>
Warum funktioniert das erste if, aber das zweite nicht? Anscheinend sind die Werte in beiden Fällen gleich — 25. Ich habe im Handbuch gelesen, dass es == und === gibt, aber der Unterschied ist für mich nicht offensichtlich. Wann sollte ich welchen Operator verwenden? Und was passiert, wenn ich sie versehentlich in einem echten Projekt verwechsle? Zum Beispiel bei der Überprüfung eines Passworts oder einer ID aus der Datenbank?
Vielen Dank im Voraus!