Tom: String-Vergleich

Beitrag lesen

Hello,

echo ("Nasenbär" == "Nasenbär");
  vergleicht nur den Inhalt der beiden Operanden auf Gleichheit
  und zwar Stelle für Stelle in einer Schleife.
  liefert 0 (false) beim ersten Fehler und 1 (true), wenn die
  Vergleichsschleife bis zum Ende fehlerfrei durchlaufen wurde

echo ("Nasenbär" === "Nasenbär");
  vergleicht zuerst dei Typenkennzeichnung, die in der Variablen-
  tabelle eingetragen ist und dann noch wie vorstehend

echo strcmp("Nasenbär","Nasenbär");
  vergleicht die beiden Operanden bitweise, d.h. führt einen
  mathematischen Größenvergleich durch. Dazu muss die Länge verglichen
  werden und wenn diese gleich ist, die Werte der einzelnen Stellen
  in Bezug auf die Stellung im collating key (~Zeichnsatz) verglichen
  werden, und zwar bis zum Ende der Schleife.
  Liefert "<0" für str1 < str2, "0" für str1 = str2, "1" für str1 > str2

Man musste hier also einen zusätzlichen Vergleich durchführen, um
  eine gleichwertige Aussage zu 1. oder 2. zu erhalten. Denn "0" steht
  sonst für "false" und hier würde "0" gerade "true" bedeuten.

Man kann also 1. keine allgemeingültige Aussage treffen, welcher Vergleich denn länger dauern würde, da alle drei Vergleichsarten unterschiedliche Zielsetzungen haben und die Dauer von den Operanden abhängig ist. Der aufwändigste Vergleich ist sicher der dritte.

------------

Übrigens darf man hier _jede_ Frage stellen, wenn sie den Regeln entspricht. so sthet das in den FAQ. Ich konnte bei Deiner Frage keinen Regelverstoß erkennen, allerdings bei den Antworten. ;-)

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen