PHP: Vergleich zweier Strings

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_vergleich_zweier_strings_107241/page_1 - zur Vollversion wechseln!


fagø schrieb am 16.02.2004 um 23:02

ich dachte php ändert den typ automatisch auf int um, wenn benötigt, also hab ich folgendes geschrieben:

Code: PHP
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
Zitat
3<3
als logisch 1 ausgewertet :eek:

die selbe situation mit
Code: PHP
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
Code: PHP
if( $id > $elem[2] )
5 Zeilen weiter oben immer funktioniert :eek: :confused:

wäre toll, wenn mir wer erklären könnte was hier vorgeht..


funka schrieb am 17.02.2004 um 00:17

bei mir funktionierts typejuggling einwnadfrei

Code: PHP
<?
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ø schrieb am 18.02.2004 um 14:05

vielen dank, das hit mir geholfen :)

ich hab folgendes verglichen:
string(1) "3" string(3) "3 "

bei letzeren hat sich noch ein \n hinzugeschlichen..




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026