PHP: Vergleich zweier Strings
fagø 16.02.2004 - 23:02 510 2
fagø
Big d00d
|
ich dachte php ändert den typ automatisch auf int um, wenn benötigt, also hab ich folgendes geschrieben: if( $id < $elem[2] )
beide variablen sind strings, die zahlen enthalten. das hat so auch funktoniert, nur das seltsame war dann, in einem fall nicht! ich hab mir dann über echo alles ausgeben lassen, da ich den fehler nicht verstanden habe, und php hat 3<3 als logisch 1 ausgewertet die selbe situation mit if((int)$id < (int)$elem[2])
funktioniert jedoch auch in diesem fall. ok, wenn php die strings doch nicht umwandelt (vielleicht hat < für strings auch irgendeine bedeutung?), dann verstehe ich nicht warum die selbe bedingung in 2/3 fällen doch funktioniert hat und weshalb if( $id > $elem[2] )
5 Zeilen weiter oben immer funktioniert wäre toll, wenn mir wer erklären könnte was hier vorgeht..
|
funka
Legend ex-prophet(down below)
|
bei mir funktionierts typejuggling einwnadfrei <?
var_dump("3"<"3");
var_dump(3<"3");
var_dump("3"<3);
var_dump(3<3);
var_dump( "3 "< "3");
var_dump( " 3"< "3");
var_dump( 3< " 3 ");
?>
output:
bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) bool(false)
versuchs mal mit var_dump zu "debuggen" also welche werte die vars wirklich haben und was das ergebniss wirklich ist bevors if als true/false interpretiert
|
fagø
Big d00d
|
vielen dank, das hit mir geholfen ich hab folgendes verglichen: string(1) "3" string(3) "3 " bei letzeren hat sich noch ein \n hinzugeschlichen..
|