ok 用一个函数使用 usort 没那么复杂
这是我之前的线性代码中的内容
function merchantSort($a,$b){
return ....// stuff;
}
$array = array('..','..','..');
我只是简单地排序
usort($array,"merchantSort");
现在我们正在升级代码并删除所有全局函数并将它们放在适当的位置。现在所有代码都在一个类中,我不知道如何使用 usort 函数对数组进行排序,参数是对象方法而不是简单函数
class ClassName {
...
private function merchantSort($a,$b) {
return ...// the sort
}
public function doSomeWork() {
...
$array = $this->someThingThatReturnAnArray();
usort($array,'$this->merchantSort'); // ??? this is the part i can't figure out
...
}
}
问题是如何在 usort() 函数中调用对象方法
最佳答案
使您的排序功能静态:
private static function merchantSort($a,$b) {
return ...// the sort
}
并为第二个参数使用数组:
$array = $this->someThingThatReturnAnArray();
usort($array, array('ClassName','merchantSort'));
关于php - 在带有类私有(private)函数的 php 中使用 usort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6053994/