我正在静态方法中实现排序解决方案。基本上,我有:
Xbanners
)Xbanners::$banners
)Xbanners::$banners[0]->priority
)上存储为属性的一个参数对该对象数组进行排序。我只是使用usort()来调用排序方法,但我必须硬编码我的类的名称。我怎么能避免这个?
usort(self::$banners, 'Xbanners::' . $sortingMethod);
答案 0 :(得分:4)
您可以使用__CLASS__
代替硬编码的类名称和数组作为回调定义àla,
usort( self::$banners, array( __CLASS__, $sortingMethod ) );
但是,我会严格建议不要使用任何静态成员,而是以面向对象的方式实现您的功能。这避免了后来的继承问题,并且是一种更清洁的方法(例如,测试方式)。