php uasort в ООП

class DBNews { public function get_latest_posts($limit){ // code goes here $posts_array = array(); uasort($posts_array, $this->cmp); } public function cmp($a, $b) { if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; } } 

Я получаю следующее предупреждение:

 Warning: uasort() expects parameter 2 to be a valid callback, no array or string given in C:\xampp\htdocs\news\admin\functions.php on line 554. 

И 554-я строка содержит uasort($posts_array, $this->cmp) .

Где использовать строку или массив и каким образом?

EDIT : Если я использую uasort($posts_array, array($this, 'cmp')); , Я получаю следующее предупреждение:

 uasort() expects parameter 2 to be a valid callback, array must have exactly two members in C:\xampp\htdocs\news\admin\functions.php on line 554 

Если у вас есть> = 5.3, и вы не используете метод сравнения в любой другой функции, вы также можете использовать закрытие:

 uasort($posts_array, function($a, $b) { if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; }); 

Вы должны называть это следующим образом:

 uasort($posts_array, Array ( $this, 'cmp'); 

Следующая ссылка объясняет, как вы можете построить действительный обратный вызов в PHP: http://www.php.net/manual/en/language.types.callable.php

 uasort($posts_array, array($this, 'cmp'));