usort: invalide Funktion?!
Nina
- php
0 Sven Rautenberg0 Nina
Hi,
warum ist meine Vergeleichsfunktion neuerdings invalide laut usort?
function cmp($a,$b)
{
if(doubleval($a['price'])==doubleval($b['price'])) return 0;
return (doubleval($a['price'])<doubleval($b['price']))? -1:1;
}
Bei dem input für usort handelt es sich um einen Array der Art:
$Data[$i]['price']=$intPrice;
...
Hoffe, Ihr findet den Fehlerteufel.
Danke schonmal
Moin!
warum ist meine Vergeleichsfunktion neuerdings invalide laut usort?
Wie lautet die originale Fehlermeldung? Wie lautet dein originaler Programmcode an der Stelle?
- Sven Rautenberg
hi,
so ruf ich es auf:
usort($Data,"cmp");
und als Fehlermeldung bekomm ich nur:
Warning: usort() [function.usort]: Invalid comparison function. in /srv/htdocs/test/sortscript.inc.php on line 114
Siehst Du einen Fehler in der Funktion?
Moin!
so ruf ich es auf:
usort($Data,"cmp");und als Fehlermeldung bekomm ich nur:
Warning: usort() [function.usort]: Invalid comparison function. in /srv/htdocs/test/sortscript.inc.php on line 114Siehst Du einen Fehler in der Funktion?
Wie unser Archiv sagt, tritt der von dir beobachtete Fehler nur auf, wenn die Vergleichsfunktion zum Zeitpunkt des Aufrufs nicht existiert.
Das solltest du unbedingt mal prüfen. Füge vor deinem usort() ein:
echo function_exists("cmp");
Wenn das false ergibt, hast du den Beweis, und mußt "nur noch" für die passende Einbindung der Funktion sorgen.
Wenn nicht - dann ist irgendwas so falsch, dass mir spontan nichts einfällt.
- Sven Rautenberg
Hallo Sven.
Füge vor deinem usort() ein:
echo function_exists("cmp");
Wenn das false ergibt, …
… sieht man nichts. (OK, die Abwesenheit einer „1“.) Deshalb besser so:
var_dump(function_exists("cmp"));
Einen schönen Dienstag noch.
Gruß, Mathias
Danke, daran lag es. Hab die Funktion erst danach includet.