2
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).

文字列または配列をどこでどのように使用するか?

編集: を使用する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
4

3 に答える 3

8

あなたはそれをこのように呼ぶ必要があります:

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

次のリンクは、PHPで有効なコールバックを構築する方法を説明しています:http ://www.php.net/manual/en/language.types.callable.php

于 2013-03-06T10:15:43.667 に答える
5
uasort($posts_array, array($this, 'cmp'));
于 2013-03-06T10:15:49.313 に答える
5

>= 5.3 で、他の関数で比較メソッドを使用していない場合は、クロージャーも使用できます。

uasort($posts_array, function($a, $b) {
    if ($a == $b) {
        return 0;
    }

    return ($a < $b) ? -1 : 1;
});
于 2013-03-06T10:25:53.537 に答える