Einzelnen Beitrag anzeigen
Alt 15.03.2005, 15:52   #1
Flink
Hero
 
Registriert seit: 29.08.2001
Alter: 57
Beiträge: 904


Flink eine Nachricht über ICQ schicken Flink eine Nachricht über Skype™ schicken
Standard PHP: using $this ... uasort

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");
____________________________________
Bibel
Flink ist offline   Mit Zitat antworten