phpbar.de logo

Mailinglisten-Archive

[php] Typkonversion vielleicht doch besser? (Ex: Re: [php] oohforms -add_element - $cv_tab)add_element - $cv_tab)

[php] Typkonversion vielleicht doch besser? (Ex: Re: [php] oohforms -add_element - $cv_tab)add_element - $cv_tab)

Markus Dobel m_(at)_rkus.dobel.de
Fri, 21 Jan 2000 12:50:26 +0100


Oliver Kummerow wrote:
> 
> Ein paar Demos, wie man recht schön in die Pfütze fallen kann:

nun, diese sachen scheinen mir zum grossteil theoretisch, wenn auch
dennoch aergerlich. wobei ich jedoch letztens auf die nase gefallen bin,
ohne gezielt auf einen fehler hinzuarbeiten, ist jenes:

$min_y=500;
$sql_query=mysql_query("SELECT max(yaxis) FROM ".$table."
".$sql_where_order);
$row=mysql_fetch_row($sql_query);
$maxval=max($row[0],$min_y);

die spalte yaxis ist als float definiert, also kein string von sich aus.
das maximum der spalte betrug 92.4 oder so. trotzalledem kam als max()
immer 92.4 heraus, obwohl meinen mathematischen kenntnissen nach 500
nicht unerheblich groesser als 92.4 ist.

die loesung (scheinbar) ist, dass php in diesem fall keine
typkonvertierung richtung double vornimmt, sondern das ganze wie strings
vergleicht. und dort ist nun mal ein string, der mit 9 beginnt, weiter
hinten als ein string, der mit 5 beginnt... vergleiche max("ab","bc");
und aehnliches. dabei kommt immer der alphabetisch hintere wert raus.

loesung meines problems war es dann 

$maxval=max((double)$row[0],$min_y); 

zu berechnen, damit funktionierte es dann wie erwartet.
ein entsprechender bugreport ist raus.

gruss, markus


php::bar PHP Wiki   -   Listenarchive