uksort innerhalb von klassen verwenden
schildi
- php
0 schildi
hallo,
ich habe bisher uksort erfolgreich innerhalb einer klasse verwenden können. seit update auf die aktuelle stable-version (4.3.9) bekomme ich in diesem fall eine fehlermeldung.
so machte ich das bisher:
class [...]
{
[...]
function [...]
{
[...]
uksort($this->menu[$n_path], '$this->sort_n');
}
function sort_n($a,$b)
{ //wortlänge
if(strlen($a) == strlen($b)) return 0;
return (strlen($a) > strlen($b)) ? 1 : -1;
}
[...]
}
Seit der neuen php-version bekomme ich die meldung:
uksort(): Invalid comparison function
Weiss jemand, wie ich uksort in meiner Klasse trotzdem weiterhin verwenden kann? Oder wurde das ganz unterbunden?
dank guter hilfe in der mailing-list auf http://lists.phpbar.de problem behoben, zwar etwas unschön - aber es funktioniert:
class sortierung
{
var $a = array (4 => "vier",
3 => "drei",
20 => "zwanzig",
10 => "zehn");
function do_the_do_it()
{
$a = $this->do_it();
return $a;
}
function do_it ()
{
if(!function_exists("cmp"))
{
function cmp ($a, $b)
{
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
}
uksort ($this->a, "cmp");
return $this->a;
}
}