php usort - 找不到函数'comp'或函数名无效

时间:2015-11-27 19:39:27

标签: php

我正在尝试根据数组中的值对数组进行排序。我试过以下

function comp($a, $b)
{
        return strcmp($a["name"], $b["name"]);
}

在我的函数类中,但是从同一个类中调用它时

    $usersInSection = $userManager->getUsersInSection($section);
    usort($usersInSection, "conp");

我收到消息

  

usort()期望参数2是有效的回调,函数'comp'   未找到或无效的功能名称

4 个答案:

答案 0 :(得分:4)

如果你的comp在一个类中,那么它就是一种方法。

要在相同的类方法中使用它,您需要像这样调用:

usort($usersInSection, array($this, "comp"));

答案 1 :(得分:2)

在类中使用回调调用usort的语法是:

usort($usersInSection, array("MyClass", "comp"));

检查PHP Manual: Callbacks / Callables

答案 2 :(得分:0)

看起来你在usort($usersInSection, "conp")中有拼写错误。您的函数称为comp而不是conp

答案 3 :(得分:0)

  

在我的函数类

所以你有一个类来保存辅助函数(?),因此comp实际上是该类的方法

然后你必须将类名或类实例(对于非静态方法)传递给usort,方法与manual for call_user_func_array中描述的相同。