2016-07-06 16 views
2

Ich habe ein Problem mit usort nicht den zweiten Parameter (die Sortierfunktion). Ich habe eine Menge Fragen darüber gesehen, dass dies ein Problem in einer Klasse ist, und die Antwort dafür ist, ein Array von array($this, functionName) zu übergeben. Aber in meinem Fall funktioniert das nicht. Das Skript ist keine Klasse, aber ich bin immer diese Fehlermeldung:PHP usort() erwartet, dass Parameter 2 ein gültiger Rückruf ist, nicht in einer Klasse

PHP Warning: usort() expects parameter 2 to be a valid callback, function 'cmp' not found or invalid function name in <filename.php> 

Also, was ist das Problem mit dem zweiten Parameter, der Namen der Funktion, nicht gefunden werden? Dies ist ein Beispielcode direkt von der PHP-Website.

Antwort

4

Wenn der Code nicht in einer Klasse ist, Sie aber einen Namespace verwenden, erwartet usort, dass der zweite Parameter diesen Namespace definiert. Aber nicht in einem Array ähnlich wie usort in einer Klasse.

Das ist für mich gearbeitet, wo 'cmp' ist die Sortierfunktion:

usort($arrayToSort, 'My\Full\Namespace\cmp'); 
+2

Es ist die Q & A-Format der Entsendung. Wenn Sie ein Problem haben und eine Lösung finden, können Sie im Q & A-Format posten. – Deltaxfx

+0

@ AndréFerraz [dies] (http://stackoverflow.com/help/self-answer) –