好的,将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相关问答推荐

无法使用DOMPDF在PDF中呈现非ANSI字符

自定义通知在Woocommerce我的帐户自定义端点页面上不起作用

仅在WooCommerce管理订单视图上显示订单项自定义元数据

在内部API请求之后,在响应客户端之前,是否忘记了PHP中的Header()?

允许在WooCommerce管理员优惠券列表中显示自定义优惠券类型

按与WooCommerce管理顺序列表中的特定字符串不匹配的特定元值筛选订单

如何将隐式乘法添加到PHPPEG基本计算器语法中?

如何保存基于用户 Select 的复选框 Select 模式

将自定义字段添加到管理产品中 WooCommerce 3.2+ 中的快速编辑

将自定义字段添加到管理产品 在 WooCommerce 3.2+ 中批量编辑

使用产品自定义字段作为 WooCommerce 中特定用户角色的折扣百分比

将图像作为 PHP post 响应发送到浏览器

在 php 中生成 MAC ISO/IEC 9797-1

Symfony:指定 data_class 时,提交的表单获取初始化前不得访问

使用 Laravel 和 Vue 进行图像表单验证

从 Laravel 机制中排除目录并直接访问该目录

Laravel 发送邮箱问题 Swift_TransportException

如何设置Mailersend PHP API 模板变量?

如何通过额外的属性和本地化来使用 laravel 枚举

使用 GROUP_CONCAT 规范化/转置来自查询的数据