(나는 여러 인스턴스를 가질 필요가 없기 때문에) 싱글 톤으로 사용되는 "정적 클래스"와이를 확장하는 데 사용되는 다른 클래스 같은 방식으로.PHP 정적 클래스의 부모 클래스에있는 Usort 정적 클래스
처리 중 일부 지점에서 확장 클래스는 parent :: doThis()를 호출하고 doThis는 궁극적으로 usort를 수행합니다.
각각의 정렬을 다르게 처리하기 때문에 호출 순서는 호출 클래스에 있어야합니다. "class :: method()"와 같은 것이 usort 콜백의 문자열이 될 수 있습니까? 그렇다면 부모 클래스가 그것을 호출하는 클래스를 인수로 전달하지 않고 부모 클래스가 그것을 호출하는 방법을 알기 쉽게 지정할 수 있습니다. 호출 클래스의 usort 콜백? 결정하는 부모의 어떤 수단을 기반으로
class parentClass {
protected static function doThis($data) {
// do stuff, then
usort($data, "myCallingClass::cmp()"
}
}
무엇 myCallingClass가, 또는 그것이 내가 당신이 Late Static Bindings이 작업을 수행 할 수 있어야한다고 생각
class parentClass {
protected static function doThis($data, $calling_class) {
// do stuff, then
usort($data, $calling_class . "::cmp()"
}
}
두 솔루션이 작동합니다,하지만 u는 다른 콜백을 둘 필요가 있다면, 그래서 유와 콜백 – UnskilledFreak
사이에 뭔가 잘못 항상 되었습니까 전환 할 수 있습니다 # 2를 사용 질문? 나는 그것이 downvoted 것을 안다. –