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'));