PHP:
Wenn ich in der Compare-Funktion zu uasort auf $this->categories zugreife, erhalte ich die Fehlermeldung:
"Fatal error: Using $this when not in object context in"
Ich erhalte diese Fehlermeldung auch dann, wenn ich diese Funktion lokal als Unterfunktion in der Klasse selber aufrufe.
Ich rufe es auf mit:
Code:
uasort ($productsArray[$v], "categorycomp");
Ich habe folgendes probiert:
Code:
$categories1=array(); // It is a copy of $this->categories to make asort possible
function categorycomp($row1, $row2) {
global $categories1;
debug($this->categories1,'$this->categories1', __LINE__, __FILE__);
debug($categories1,'$categories1', __LINE__, __FILE__);
return strcmp($categories1[$row1['category']], $categories1[$row2['category']]);
}
Der Aufruf erfolgt in einer Funktion der Klasse
Code:
class tx_ttproducts { var $categories=array();
D.h. auch wenn ich vor dem Funktionsaufruf $categories1=$this->categories zuweise, dann sind alle Werte von $categories1 in categorycomp leer.
Wie muß ich die $this-Variablen oder andere Variablen korrekt an die Compare-Funktion in uasort übergeben?
wenn ich es als Klassen-Member implementiere, erhalte ich:
"Warning: uasort() [function.uasort]: Invalid comparison function. in"
Code:
uasort ($productsArray[$v], "main_products::categorycomp");