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