Service2Max - Die neue Service-Dimension

Vergleichen von Strings in PHP

Erstellt von Patrick Matsumura am 10.04.2008

| Keine Kommentare

Nachdem eine der meist genutzten Anwendungen von String in PHP das Vergleichen ist, dachte ich mir, dass ich mal etwas dazu schreibe. Es gibt nämlich das Problem, dass PHP intern den Datentyp für eine Stringvariable festlegt. Unter Umständen kommt es vor, dass Strings als Zahlen interpretiert werden und somit oft in einen numerischen Datentyp konvertiert werden.

Siehe dazu folgendes Beispiel:

<?
$string = '123abc';
if ($string == 123) {
    // mach irgendwas
}
?>

Man würde normalerweise davon ausgehen, dass die beiden Werte nicht identisch sind. Aber PHP wandelt den Inhalt von $string in den Integer 123 um, macht den Vergleich also wahr. Um diesem “Problem” aus dem Weg zu gehen, könnte man auch alternativ den Identitäts-Operator === nehmen.

Weitere Möglichkeiten bieten die Funktionen strcmp() und strcasecmp(). Sie wurden speziell dafür entwickelt Stings miteinander zu vergleichen. Man muss aber darauf achten, dass strcasecmp() auf Gross- und Kleinschreibung Rücksicht nimmt. Somit ist “patrick” nicht gleich “Patrick”. Die beiden Funktionen geben jeweils 0 zurück, sofern die zu vergleichenden Parameter identisch sind.

Patrick