【发布时间】:2015-02-17 08:51:29
【问题描述】:
我有一个用作单例的“静态类”(因为从来不需要有多个实例),以及扩展它并以相同方式使用的其他类。
在处理过程中的某个时刻,扩展类将调用 parent::doThis(),doThis 最终会执行一次排序。
usort 的回调应该在调用类中,因为每个类都会以不同的方式处理排序。像“class::method()”这样的东西可以作为一个usort回调的字符串吗?如果是这样,有没有办法让父类知道哪个类调用了它,而无需我将它作为参数传递,以便它可以命名usort 的调用类回调?
class parentClass {
protected static function doThis($data) {
// do stuff, then
usort($data, "myCallingClass::cmp()"
}
}
基于父级确定 myCallingClass 是什么或是否需要的某种方式
class parentClass {
protected static function doThis($data, $calling_class) {
// do stuff, then
usort($data, $calling_class . "::cmp()"
}
}
【问题讨论】:
-
两种解决方案都可以,但是如果您需要放置不同的回调,请使用#2,这样您就可以随时在回调之间切换
-
问题有问题吗?我看到它被否决了。
标签: php oop usort static-classes